我在下面有下面的代碼。當我運行應用程序,然後點擊「欄」時,顯示消息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