如何删除绑定到单击事件的任何 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 操作? [复制]的主要内容,如果未能解决你的问题,请参考以下文章