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

Posted

技术标签:

【中文标题】如何删除绑定到单击事件的任何 jQuery 操作? [复制]【英文标题】:How to remove any jQuery action bound to a click event? [duplicate] 【发布时间】:2016-07-28 11:43:31 【问题描述】:

在我的 wordpress 网站上,我有一个由安装的插件管理的日历页面,其中包含一些基本链接<a class="mylink" href="http://myurl.com">Some text</a>

在该插件的某处有一些 javascript 代码,一旦用户单击其中一个链接就会触发 AJAX 调用。好吧,我不希望这种情况发生。当然,我不想编辑插件核心文件。

我想要做的是简单地创建一个脚本,删除绑定到这些链接的任何操作,以便一旦用户点击这些链接之一,什么都不会发生。 所以,我尝试了 jQuery 方法 preventDefault()stopPropagation()stopImmediatePropagation(),但它们都不起作用。

jQuery(document).on('click','.mylink', function(event)
    event.preventDefault();
    event.stopImmediatePropagation();
    event.stopPropagation();
    //do the stuff i want here
);

我错过了什么?

【问题讨论】:

添加一个“return false;”最后 没什么变化... 在您实例化插件后尝试$('.mylink').off('click') 您确定要在插件之前添加回调吗? 如果插件将点击绑定到某个命名空间,例如 $(el).on('click.namespace',function())。您需要知道 click.namespace 才能解除绑定。 【参考方案1】:

就像on() 函数可用于连接事件一样,您可以使用off() 函数删除事件处理程序:

$(document).off('click','.mylink');

您只需确保在创建初始事件处理程序后执行此操作。

【讨论】:

我已将该代码放在页面末尾的 【参考方案2】:

在您的代码中,您只是为单击事件添加另一个处理程序,而不是替换原始处理程序。您需要取消绑定这些链接上的点击事件。执行此操作的代码:

jQuery('a.mylink').unbind('click')

【讨论】:

以上是关于如何删除绑定到单击事件的任何 jQuery 操作? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

删除单击的悬停事件,然后再次绑定

jQuery--事件

jQuery-事件

怎样用js或jquery操作span的单击事件?

jquery如何 绑定Load事件 到一个元素上

鼠标事件(jQuery)