1

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

我曾经使用过的输入按钮

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

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

但是,由于“禁用”无法使用跨度/标签,我需要一个替代方案。

最坏情况解决方案:

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

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

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

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

4

1 回答 1

0

你可以添加一个类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");
            }
        })
    }
});

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

于 2013-01-10T13:05:53.677 回答