我在下面有下面的代码。当我运行应用程序,然后点击“栏”时,显示消息The not 'current' div has been clicked
。然后,如果我点击“foo”,则不显示消息。我预计会显示这条消息,因为我已经在两个divs
之间交换了类current
。在两个div之间点击时交换类别
<div class="current">foo</div>
<div>bar</div>
$('document').ready(function(){
$('div').not('.current').on('click', function(){
alert("The not 'current' div has been clicked.")
var aux = $(this);
$('div').removeClass('current');
aux.addClass('current');
});
});
正确加载文档后,您为所有没有“current”类的元素分配了一个click监听器。因此,第一个具有该类的div不在集合中,并且永远不会拥有该收听者。 – 2013-05-10 11:38:43
@PetrČihula好的,谢谢,我不知道我是在“分配”,有没有办法做到这一点,而没有“assinging”? – ziiweb 2013-05-10 12:24:34
如果通过“不分配”您的意思是“每次更改类时不重复分配”,那么对每个“div:not(.current)”使用'.live()'(jQuery <1.7) .on()'(> = 1.7)用相同的子选择器应用于文档对象。请参阅http://jsfiddle.net/MMjx4/ – 2013-05-13 13:11:38