如何解决将鼠标悬停在链接上时更改父 div 的 css
我尝试了这个解决方案,但遗漏了一些东西:change background of parent div on hover
这是我的 html:
CordovaPlugins (from
这是我在这里尝试使用的覆盖:/templates/shaper_helixultimate/html/com_content/category/default_children.PHP
)
我做错了什么?
<div class="Box">
<h3 class="page-header item-title">
<a class="titlelink" href="/index.PHP?option=com_content&view=category&id=11&Itemid=234">
Modeling</a>
$document = JFactory::getDocument();
$document->addScriptDeclaration('
$('.Box > .titlelink').hover(function(){
$(this).parent().toggleClass('hover');
})
});
');
解决方法
选择器 .box > .titlelink
寻找父子关系。你没有那个。
改用 .box .titlelink
。
$('.box .titlelink').hover(function() {
$(this).parent().toggleClass('hover');
});
.hover {
background: pink;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="box">
<h3 class="page-header item-title">
<a class="titlelink" href="/index.php?option=com_content&view=category&id=11&Itemid=234">
Modeling</a>
</h3>
</div>
正如@isherwood 提到的,您链接到的解决方案使用的结构与您现有的结构不同。 CSS 选择器中的 >
指定您的目标是直接子元素,而在两个选择器之间留一个空格来查找任何后代。
.box > .titlelink {
/* targets where .titlelink is a child of .box */
}
.box .titlelink {
/* targets where .titlelink is a descendant of .box */
}
如果你想像你引用的解决方案一样使用严格的 CSS 选择器,你可以这样做:
$('.box > .item-title > .titlelink').hover(function(){
$(this).parent().toggleClass('hover');
});
虽然这会将 hover
类添加到 .item-title
元素,而不是添加到 .box
元素。假设您特别希望针对 .box
事件监听的任何对象的 hover
祖先,那么您需要:
$('.box > .item-title > .titlelink').hover(function(){
$(this).parents('.box').toggleClass('hover');
});
因为 jQuery 的 parents 方法允许您传递一个选择器来定位特定的祖先,在树中向上移动多个级别。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。