如何使 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 单击事件恢复到原本的状态?的主要内容,如果未能解决你的问题,请参考以下文章

jquery如何阻止事件冒泡

如何删除绑定到单击事件的任何 jQuery 操作? [复制]

Bootstrap 4:如何通过 jquery 或 vuejs 单击列表组项目时使其处于活动状态?

单击按钮时如何使 VideoView 全屏显示?

单击复选框并单击恢复按钮时如何打开Jquery对话框弹出窗口

弹出窗口打开时如何传播 jQuery Mobile 事件?