1

使用时有点麻烦:

$('.instrumentSelect').click(function(){
    var thisElement = $(this).index();
    $('.instrumentSelect').eq(thisElement).addClass('active');
    $('.active').removeClass('active');
});

删除类就好了,我控制台记录var thisElement并返回正确的索引,只是没有将类附加到它。火虫不返回错误。

4

3 回答 3

2
$('.instrumentSelect').click(function(){
    var thisElement = $(this).index();
    $('.instrumentSelect').eq(thisElement).addClass('active');
    $('.active').not($(this)).removeClass('active');
});

或者更简单地说,您可以像这样反转这些行

    $('.active').removeClass('active');
    $('.instrumentSelect').eq(thisElement).addClass('active');

您正在添加它,然后将其删除。您必须排除您正在操作的对象。

于 2013-07-17T16:47:40.533 回答
2

可能您.active在将其添加到当前项目之前尝试清除类

$('.active').removeClass('active');  
$('.instrumentSelect').eq(thisElement).addClass('active');
于 2013-07-17T16:48:06.817 回答
2

我不确定您要做什么,但是先删除该类并稍后添加它更有意义。另外,你为什么使用index以及eq()何时可以添加一个类$(this)

尝试这个:

$('.instrumentSelect').click(function(){
  $('.active').removeClass('active');
  $(this).addClass('active');

});
于 2013-07-17T16:48:46.757 回答