Пожалуйста, просмотрите пример
https://jsfiddle.net/vobbohxj/
Возможно ли упростить код / сделать его более быстрым?
Принцип такой: когда активны (имеют класс "is_active") 4 дива, то пятый, главный ("#all-tags"), тоже становится активным. Если я убираю класс у какого-либо блока, то
"#all-tags"
тоже теряет класс "is_active". Если я помечаю все четыре дива, то пятый, соответственно, так же сам "загорается".
$("#all-tags").click(function() {
if ($(this).hasClass("is_active")) {
$(".tags_cloud div").each(function() {
$(this).removeClass("is_active");
});
} else {
$(this).addClass("is_active");
$(".tags_cloud div").each(function() {
$(this).addClass("is_active");
});
}
});
$(".tags_cloud div").click(function() {
!$(this).is("#all-tags") ? $(this).toggleClass("is_active") : true;
var c = 0;
$(".tags_cloud div").each(function() {
if ($(this).hasClass("is_active") && !$(this).is("#all-tags")) {
// some my code
} else if (!$(this).is("#all-tags")) {
$("#all-tags").removeClass("is_active");
c = 1;
}
c == 0 ? $("#all-tags").addClass("is_active") : true;
})
});
Не уверен, что использование
.each()
достаточно правильно...
Моё решение работает как надо, но мне, конечно же, требуется самое правильное и быстрое.
Одно из решений: https://jsfiddle.net/mu85sf4m/