2010-05-17 68 views
0

jQuery 1.4.2中的代理可以使用選擇器的複雜性嗎?jQuery代理的複雜選擇器

這個工作對我來說:

$('.activeTabsList').delegate('.activeTabsListItem', 'click', 
function() { 
    alert('here'); 
}); 

這不起作用:

$('.activeTabsList').delegate('.activeTabsListItem:not(.selected)', 'click', 
function() { 
    alert('here'); 
}); 

正如你可能會認爲,只有1項在有選擇的上課。當我點擊其他標籤時,我的委託處理程序仍然沒有被解僱。

回答

3

您的代碼有效,you can see a demo here。確保你的選擇器符合你的想法,這很可能是問題... .delegate()本身處理這種情況。

這通常發生作爲這樣的一個結果是,過度分配selected類:

$(".activeTabsListItem").click(function() { 
    $(".activeTabsListItem").addClass("selected"); //should have been $(this) 
}); 
+0

感謝 - 只是確保我沒有試圖做一些不支持之前,我真的試圖尋找到它更深。沒有任何演示涵蓋了簡單選擇器之外的任何內容。我從來沒有見過jsFiddle,但這是一個非常可愛的工具 – 2010-05-17 16:12:22

+0

+1的答案....如果我可以給另一個鏈接到jsFiddle,我會......很好的工具! – 2010-05-17 16:15:36

+0

我的問題最終是因爲我用ui標籤來使用它。首先觸發,所以我的標籤總是在我的事件觸發時被選中。 – 2010-05-17 16:36:17