首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单个元素上的die()

单个元素上的die()
EN

Stack Overflow用户
提问于 2010-10-23 00:15:10
回答 1查看 165关注 0票数 0

我附加了一些live()监听器,以便自动对url中的每个链接进行ajax调用:

代码语言:javascript
复制
$("document").ready(function() {
    $('a[href^="/ajax"]').live('click', call);
});

function call(e, context, link) {
    e && e.preventDefault();
    link = link || this;
    if(typeof link == "string" || !$(link).hasClass("disabled")) {
        newObj(SPZ.AjaxCall, link, context);
    }
};

但有时我想覆盖它(这样我就可以指定在其中查找回调函数的上下文),所以我编写了一个jQuery方法来实现这一点

代码语言:javascript
复制
$.fn.customAjax = function(context) {
    return this.die().click(function(e){
        call.call(this, e, context);
    });
};

$(".save").customAjax(myObj);

我遇到的问题是,如果将live处理程序添加到一个元素集合中,我就不能只在其中一个元素上使用die();如果您将它应用于使用live()的所有元素,那么die()似乎只能起作用。

有没有人能建议一种可以抑制live()事件的变通方法?另外,人们对建议jQuery团队改变jQuery()的行为,以便它可以用来删除单个元素上的live()处理程序有什么看法;有什么理由认为这是一个坏主意吗?

EN

回答 1

Stack Overflow用户

发布于 2010-10-23 00:39:11

再多尝试一下,我发现在我的jQuery方法的末尾添加一个简单的return false确实起到了作用。如果我想为同样的点击附加其他监听器,这将会带来问题,但现在可以了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3998793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档