2011-07-16 151 views
0

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

//无活()方法,它是工作正常

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

随着活()方法//它不工作细

$('#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; 
} 
+1

你在哪里刷新这个事件,它在document.ready中是否正确? – kobe

+0

是的,我正在注册这个活动。 –

回答

1

尝试:

globalMove.toggleClass('highlight'); 

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

Looks like it's working fine for me?

+0

@Shef ......我正在以同样的方式做这件事,就像你现在说的仪式一样globalMove.toggleClass('highlight');那时它也没有工作。所以我改为$(globalMove).toggleClass('highlight'); –

+0

@Java_NewBie:它对我来说工作得很好。检查我的答案上的链接。也许你在代码的另一部分有错误,这会阻止JS运行? – Shef

+1

它正在Fiddle.yeah工作可能你是礼仪...我要再次检查我的代码... –

0

使用.on代替现场。

现在不再推荐。 现在.live()在jQuery版本1.7中被弃用,并在版本1.9中被删除,我们需要使用.on()方法。这里有一个使用.on()方法的等价例子:

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

function doSomething() { 
    // do something 
}