Я очень новичок в 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>
Но, не только у меня есть классы A, B и C, есть еще 6 или 7 других классов, а также. Классы .box .a
, .box .b
и т. Д. Используются более одного раза, или я просто использовал ids, а классы .a
, .b
и т. Д. Используются, чтобы дать соответствующим .box
и .legend
div одинаковый цвет фона.
Я чувствую, что должен быть более простой способ сделать это, а не использовать много повторений. Любая помощь с этим будет очень признательна, спасибо.
спасибо! это делает именно то, что я хотел. – user3291397
Это ответы, но это грязно. Что делать, если конструктор добавляет классы к элементам (используя их как классы, следует использовать, чтобы изменить рендеринг)? –
@dystroy thats true, это решение ограничено. Использование атрибутов данных, которые вы предположили, вероятно, лучше, поскольку он более гибкий. – Anton