【问题标题】:How to disable a click event for some time using jquery?如何使用 jquery 在一段时间内禁用点击事件?
【发布时间】:2011-11-10 13:02:58
【问题描述】:

我有一棵左树。它的结构是这样的

主要类别 类别1 子类别1 子类 2 类别2 子类别3 子类别4 子类别5 类别3 . ..之类的

如果用户单击 MainCategory/Category/Subcategory 中的任何一个,我需要禁用/防止重复/多次单击同一链接,直到结果出现。如何使用 jquery 做到这一点?

【问题讨论】:

标签: javascript events jquery click


【解决方案1】:

如果你使用 jQuery 1.7,你可以使用 off()on() 功能

示例:

var foo = function () {
    // code to handle some kind of event
};

// ... now foo will be called when paragraphs are clicked ...
$("body").on("click", "p", foo);


// ... foo will no longer be called.
$("body").off("click", "p", foo); 

如果您使用旧版本,您可以unbind()bind() 参加活动

示例:

var foo = function () {
    // code to handle some kind of event
};

// ... now foo will be called when paragraphs are clicked ...
$("body p").bind("click", foo);

// ... foo will no longer be called.
$("body p").unbind("click");

【讨论】:

    【解决方案2】:

    可能只是使用一个类来检查它是否已被点击。
    如果单击,则不执行,并删除成功和失败的类。

    原型 -

    $('.selector').click(function(){
        if(!$(this).hasClass('someclass')){
            $(this).addClass('someclass');
            $.ajax({
              url: "test.html",
              success: function(){
                $(this).removeClass("someclass");
              },
              error: function(){
                $(this).removeClass("someclass");
              }
            });
        }
    })
    

    【讨论】:

    • 这不起作用:jsfiddle.net/manuel/XcYqJ 事件已经绑定并且不检查类是否存在
    • 对类的检查在点击事件中。所以它不会阻止点击。但根本不执行点击中的内容。请检查代码。
    • 对不起!我的错。但是,为此使用现场活动不是更好吗?那么如果设置了课程,您就不必自己检查它。再次抱歉没有很好地阅读您的代码:)
    • np :) ... 如果元素是动态添加的,那么 Live 将会是。按照您的建议绑定/解除绑定或开/关将是一个不错的选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多