jquery - 你能执行基于元素伪类的 jQuery 函数吗?

标签 jquery html css

是否可以编写一个 jQuery 函数,当另一个元素具有和不具有伪类时触发?

例如,当元素 A 悬停在元素 C 的类上时,它的类应该是“aishovered”,如果不是,它应该返回到“anothovered”

当 A 没有悬停时:

<div class="a"> </div>
<div class="b"> </div>
<div class="c anothovered"> </div>

当 A 悬停时:

<div class="a"> </div>
<div class="b"> </div>
<div class="c aishovered"> </div>

悬停状态仅用作示例,寻找可与其他伪类(例如:active 和:visited)一起使用的 jQuery 解决方案。

最佳答案

要实际添加和删除类,对于 :hover,您可以通过 hover 响应 mouseentermouseleave

$(".a").hover(
    function() { $(".c").addClass("aishovered").removeClass("anothovered");},
    function() { $(".c").removeClass("aishovered").addClass("anothovered");}
);

...对于 :active,您可以处理 focusblur

但对于伪类一般,您必须坚持使用 CSS 解决方案。在您的情况下,由于元素是 sibling ,因此您可以使用 sibling combinator 来做到这一点:

.a:hover ~ .c {
  color: blue;
}
<div class="a">a</div>
<div class="b">b</div>
<div class="c">c</div>

这并不是字面意义上的添加和删除类,而是添加和删除样式。

关于jquery - 你能执行基于元素伪类的 jQuery 函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43817866/

相关文章:

javascript - 使用正则表达式删除前导空格、回车符和不需要的标签

javascript - 单击一个 div 使另一个显示和隐藏

html - Opera 不显示正文背景

html - 单击/提交到 iframe 后刷新整个页面

大型列表上单击事件的 jQuery 委托(delegate)性能 - 如果动态添加更多元素,速度会变慢?

jquery - 使用nodejs express的ajax帖子的CSRF token 不匹配

javascript - 添加 DIV 的内部模态对话框 HTML5

javascript - React/JS 未显示可能性(智能感知)VSCODE

javascript - 当文本在透明 div 下通过时更改颜色

javascript - body 背景改变?