addClass / removeClass无法正常工作

时间:2014-11-19 18:54:26

标签: jquery addclass removeclass

我有5个按钮,每个按钮都有类.leg,我希望当用户点击其中一个在class属性上添加'active'并将其从其他属性中删除时,我想:

j$(".leg").on "click", (event)->
  j$('.leg').removeClass('active')
  j$(event.target).addClass('active')

有时当我点击其中一个按钮时,不会添加“有效”课程。我怀疑removeClass还没有完成执行,添加'active'然后再次删除。由于removeClass没有回调,还有其他方法可以解决此问题吗?

http://jsfiddle.net/k4605e3z/

3 个答案:

答案 0 :(得分:3)

使用$(this)代替$(e.target)

$('.leg').click(function(event){
  $('.leg').removeClass('active');
  $(this).addClass('active');
});

this是添加点击处理程序时选择的dom元素。

JSFIDDLE

答案 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')
})

Fiddle