如果它总是按以下顺序执行,则可以按位置执行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 的顺序不同,那么 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);
});
演示- 改用数据属性