jQuery .not 选择器可以与 .delegate 一起使用吗?

发布于 2024-10-03 08:10:42 字数 581 浏览 2 评论 0原文

我正在尝试对 id #filter 内没有类 .noAjax 的所有 元素进行 Ajax 调用> 不知何故我无法让它工作。有人可以看一下我的语法吗?

$("#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 的选择器时,没有任何效果全部。使用上面的 jquery,ajax 可以工作,但即使我单击带有 a.noAjax 的链接,它也会尝试加载内容

I'm trying to make an Ajax call on all <a> elements inside the id #filter which don't have the class .noAjax and somehow i can't get it to work. could someone have a look at my syntax please?

$("#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;
});

when i try to just use a or a.ajax (which i of course added before trying) as the selector for .delegate nothing works at all. with the jquery above the ajax works, but it tries to load content even when i click a link with a.noAjax

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

情栀口红 2024-10-10 08:10:42

使用 :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)", ...);

Use the :not() selector instead:

$("#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;
});

Or you could delegate to the ul element instead, since it's using a unique ID, for improved selector performance:

$("#portfolio-list").delegate("li a:not(.noAjax)", ...);
会发光的星星闪亮亮i 2024-10-10 08:10:42

这:

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

应该位于 a 元素上,如下所示:

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

或者,您真正想要的是什么:

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

This:

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

Should be on the a elements, like this:

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

Or, what you're really after:

$("#portfolio-list").delegate("li a:not(.noAjax)", "click", function() 
べ繥欢鉨o。 2024-10-10 08:10:42

尝试将第一部分更改为:

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

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

Try changing the first part to this:

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

The other way will select all elements in #filter that are not a.noAjax (including non-anchor tags).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文