我对jquery很陌生,只知道它的工作原理。 这基本上就是我所拥有的,它工作正常,但我想知道是否有一种方法来简化它,因为它看起来非常重复且笨重?我已经尝试了许多不同的其他方式,但是我一直无法使其中的任何一项工作。jQuery - 我怎样才能简化这个?
$(".legend.a").on("mouseenter", function() {
$(".box").not(".a").css({"opacity": "0.4"});
});
$(".legend.b").on("mouseenter", function() {
$(".box").not(".b").css({"opacity": "0.4"});
});
$(".legend.c").on("mouseenter", function() {
$(".box").not(".c").css({"opacity": "0.4"});
});
$(".legend").on("mouseleave", function() {
$(".box").css({"opacity": "1.0"});
这是HTML:
<div id="legend">
<div class="legend a">a</div>
<div class="legend b">b</div>
<div class="legend c">c</div>
</div>
<div id="box">
<div class="box a">a</div>
<div class="box b">b</div>
<div class="box c">c</div>
</div>
但是,不仅我有一个类,b和c,还有另外6个或7的其他类也是如此。类别.box .a
,.box .b
等被多次使用,或者我只是使用ID,并且.a
,.b
等类正被用于给予对应的.box
和.legend
div相同的背景颜色。
我觉得必须有一个简单的方法来做到这一点,而不是使用大量的重复。任何帮助,将不胜感激,谢谢。
谢谢!这正是我想要的。 – user3291397
这个答案但这很脏。如果设计师向元素添加类(使用它们作为类应该用来更改渲染)会怎样? –
@dystroy这是真的,这个解决方案是有限的。使用你建议的数据属性可能更好,因为它更灵活 – Anton