2010-05-17 79 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