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; });
当我尝试使用a
或a.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
所有元素(包括非锚标签)。