我正在尝试对id <a>
内的所有#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
的选择器时,根本无效。使用ajax上方的jquery工作,但即使我点击a.noAjax
的链接
答案 0 :(得分:10)
改为使用: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)", ...);
答案 1 :(得分:0)
此:
$("#filter").not($("a.noAjax")).
应该在a
元素上,如下所示:
$("#filter a").not("a.noAjax")
或者,在之后 之后
$("#portfolio-list").delegate("li a:not(.noAjax)", "click", function()
答案 2 :(得分:0)
尝试将第一部分更改为:
$("#filter a").not($(".noAjax")).del...
另一种方式是选择#filter
中不是a.noAjax
的所有元素(包括非锚标记)。