toggleClass不能在live中工作

时间:2011-07-16 06:15:00

标签: jquery-selectors jquery

我有一个问题,下面是我的代码。我使用了toggleClass并在其中传递了一个css类。现在,如果我使用没有live()方法,它工作正常。但是,如果我使用live()方法它无法正常工作我会遇到这个问题。

//没有live()方法,并且工作正常

$('#shownColumnsDiv tbody tr').click(function () {
        globalMove = $(this);
        globalArray.push(globalMove);
        index = $('#shownColumnsDiv tbody tr').index(this);
        alert(index);
        globalMove.toggleClass('highlight');            
    });

//使用live()方法无法正常工作

$('#shownColumnsDiv tbody tr').live("click", function(){
        globalMove = $(this);
        globalArray.push(globalMove);
        index = $('#shownColumnsDiv tbody tr').index(this);
        alert(index);
        globalMove.toggleClass('highlight');
    });

//这是一个css部分

.highlight {
background-color: #0078ae;
color: white;
}

2 个答案:

答案 0 :(得分:1)

尝试:

globalMove.toggleClass('highlight');

globalMove已经是一个jQuery对象,因为你在其中存储了$(this),你为什么要通过编写$(globalMove)来生成jQuery对象的jQuery对象?

Looks like it's working fine for me?

答案 1 :(得分:0)

使用.on代替现场。

现在不再推荐了。 现在,.live()在jQuery 1.7版中被弃用,在版本1.9中被删除,我们需要使用.on()方法。这是使用.on()方法的等效示例:

$(document).on('click', 'button', doSomething);

function doSomething() {
    // do something
}