jQuery .not选择器是否与.delegate一起使用?

我正在尝试对id #filter所有元素进行Ajax调用,这些元素没有类.noAjax ,不知怎的,我无法让它工作。 有人可以看看我的语法吗?

 $("#filter").not($("a.noAjax")).delegate("ul#portfolio-list li a", "click", function() { if ($.browser.msie) { location.hash = "#/" + this.pathname; } else { location.hash = this.pathname; } return false; }); 

当我尝试使用aa.ajax (我当然在尝试之前添加)作为.delegate的选择器时, .delegate没有任何作用。 使用jjery上面的ajax工作,但它尝试加载内容,即使我点击链接与a.noAjax

请改用:not()选择器:

 $("#filter").delegate("ul#portfolio-list li a:not(.noAjax)","click",function() { if ($.browser.msie) { location.hash = "#/" + this.pathname; } else { location.hash = this.pathname; } return false; }); 

或者您可以委托给ul元素,因为它使用唯一的ID,以提高选择器性能:

 $("#portfolio-list").delegate("li a:not(.noAjax)", ...); 

这个:

 $("#filter").not($("a.noAjax")). 

应该是a元素,像这样:

 $("#filter a").not("a.noAjax") 

或者,你真正追求的是:

 $("#portfolio-list").delegate("li a:not(.noAjax)", "click", function() 

尝试将第一部分更改为:

 $("#filter a").not($(".noAjax")).del... 

另一种方法是选择#filter中不是a.noAjax所有元素(包括非锚标签)。