常に次の順序になる場合は、位置を指定できますa1, a2, a3, etc..
。
$(".grid.info").click(function() {
$(".grid.info").not(this).each(function(){
var classToRemove = "a" + ($(this).index() + 1);
$('.zoom').removeClass(classToRemove);
});
var classClicked = "a" + ($(this).index() + 1);
$('.zoom').toggleClass(classClicked);
});
デモ-クリックしたdivのaxクラスを切り替え、以前にクリックした他のすべてのaxを削除します
上記は、順序が常に一致する場合にのみ機能しますが、divの順序が異なり、index()
が役に立たなくなり、次のようにデータ属性を追加することを検討する必要があります。
<div class="grid info a3" data-class="a3">3</div>
<div class="grid info a2" data-class="a2">2</div>
<div class="grid info a1" data-class="a1">1</div>
すでに提案されているようにデータ属性を使用すると、より信頼性が高くなり、スクリプトを作成するだけで、次のようにわずかに変更されます。
$(".grid.info").click(function() {
$(".grid.info").not(this).each(function(){
var classToRemove = $(this).data("class");
$('.zoom').removeClass(classToRemove);
});
var classClicked = $(this).data("class");
$('.zoom').toggleClass(classClicked);
});
デモ-代わりにデータ属性を使用