【问题标题】:Adding/Removing click event on a span/label element在跨度/标签元素上添加/删除点击事件
【发布时间】:2013-01-10 12:59:34
【问题描述】:

要求: 我对跨度进行了一次 ajax 调用。我需要暂时禁用/删除点击事件并在我的 ajax 请求完成后启用它。

我曾经使用过的输入按钮

        onRequest : function() {
            $(inputID).disabled = true ;
        },

        onComplete : function(response) {
            $(inputID).disabled = false;
        },

但是,自从“禁用”以来,跨度/标签将不起作用,我需要一个替代方案。

最坏情况解决方案:

      onRequest : function() {
            $(inputID).removeEvents() ;
        },

        onComplete : function(response) {
            $(inputID).addEvents() ;
        },

我不喜欢这个解决方案,因为我需要准备好保留该方法所需的参数。

javascript 中是否有任何规定,我可以在不删除和添加事件的情况下快速临时禁用/启用跨度/标签上的点击事件??

【问题讨论】:

    标签: html javascript-events event-handling


    【解决方案1】:

    您可以向span 添加一个类(这样您就可以设置它的样式)...

    $("inputID").on("click", function () {
        var $input = $(this);
        if (!$input.hasClass("loading")) {
            $input.addClass("loading");
            // pseudo code below
            $input.ajax({
                onComplete : function(response) {
                    $input.removeClass("loading");
                }
            })
        }
    });
    

    因此您不需要添加、删除或触摸任何事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-31
      • 2011-11-17
      • 2021-03-27
      • 1970-01-01
      • 1970-01-01
      • 2017-01-18
      • 2015-09-28
      • 1970-01-01
      相关资源
      最近更新 更多