我有一个问题,下面是我的代码。我使用了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;
}
答案 0 :(得分:1)
尝试:
globalMove.toggleClass('highlight');
globalMove
已经是一个jQuery对象,因为你在其中存储了$(this)
,你为什么要通过编写$(globalMove)
来生成jQuery对象的jQuery对象?
答案 1 :(得分:0)
使用.on
代替现场。
现在不再推荐了。 现在,.live()在jQuery 1.7版中被弃用,在版本1.9中被删除,我们需要使用.on()方法。这是使用.on()方法的等效示例:
$(document).on('click', 'button', doSomething);
function doSomething() {
// do something
}