如何使 jQuery 单击事件恢复到原本的状态?

Posted

技术标签:

【中文标题】如何使 jQuery 单击事件恢复到原本的状态?【英文标题】:How do I make a jQuery click event revert to what it otherwise would've been? 【发布时间】:2016-05-25 02:59:57 【问题描述】:

我有一个click 活动

        $('[data-assetid]').click(function()
            $.ajax(
                url : '/somemethod',
                method : 'POST',
                data :  pageid : $('input[name="pageid"]').val() ,
                success : function ( retobj ) 
                    // ... 
                
            );
            
        );

默认情况下具有点击事件的元素(<img>s、<a>s 等)。我希望它在success 回调结束时执行的操作是删除我最初附加的点击事件,以便它回退到原本的状态。我该怎么做?

【问题讨论】:

查看jQuery.unbidn() docs的最后一个例子。这应该是您正在寻找的。 jQuery.bidn() docs 也可能有用。 【参考方案1】:

您可以使用jQuery.one (check API);它会绑定一次,然后在第一次调用后解除绑定。

像这样:

    $('[data-assetid]').one("click", function()
        $.ajax(
            url : '/somemethod',
            method : 'POST',
            data :  pageid : $('input[name="pageid"]').val() ,
            success : function ( retobj ) 
                // ... 
            
        );

    );

【讨论】:

以上是关于如何使 jQuery 单击事件恢复到原本的状态?的主要内容,如果未能解决你的问题,请参考以下文章