使用eq()时jquery不添加类

时间:2013-07-17 16:45:14

标签: javascript jquery

使用它时遇到一些麻烦:

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

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

3 个答案:

答案 0 :(得分: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');

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

答案 1 :(得分:2)

在将其添加到当前项目

之前,您可能正在尝试清除.active
$('.active').removeClass('active');  
$('.instrumentSelect').eq(thisElement).addClass('active');

答案 2 :(得分:2)

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

试试这个:

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

});