我有5个按钮,每个按钮都有类.leg,我希望当用户点击其中一个在class属性上添加'active'并将其从其他属性中删除时,我想:
j$(".leg").on "click", (event)->
j$('.leg').removeClass('active')
j$(event.target).addClass('active')
有时当我点击其中一个按钮时,不会添加“有效”课程。我怀疑removeClass还没有完成执行,添加'active'然后再次删除。由于removeClass
没有回调,还有其他方法可以解决此问题吗?
答案 0 :(得分:3)
使用$(this)
代替$(e.target)
:
$('.leg').click(function(event){
$('.leg').removeClass('active');
$(this).addClass('active');
});
this
是添加点击处理程序时选择的dom元素。
答案 1 :(得分:1)
只需改变一下:
$('.leg').click(function(event){
$('.leg').removeClass('active');
$(this).addClass('active');
});
答案 2 :(得分:0)
.leg
中有一个元素,所以当您点击时,目标就是span
。您可以通过此event.target.parentElement
$('.leg').click(function(event){
$('.leg').removeClass('active');
$(event.target.parentElement).addClass('active')
})