我知道如何使用 onclick 事件来做到这一点:How do you override inline onclick event?
但是,有一个事件似乎绑定(bind)到我想删除/取消的特定 HTML 元素。
以下是它与 jQuery 的绑定(bind)方式:
$('.play-control').bind('click', function(evt){
player.play();
});
使用我上面提供的 SE 链接不会“解除关联”原始绑定(bind)。似乎只适用于 onclick 事件。
那么我如何在 Javascript(或 jQuery)中“解除绑定(bind)”事件绑定(bind)?
最佳答案
您可以使用 unbind
取消绑定(bind)与 jQuery 连接的所有 click
处理程序,或者使用更新版本的 jQuery,关闭
:
$('.play-control').unbind('click');
// or
$('.play-control').off('click');
但是,除非您可以更改连接该处理程序的代码,否则您无法在不深入研究 jQuery 内部数据结构的情况下仅取消该特定的处理程序,这些数据结构可能会在点发布之间发生变化,恕不另行通知。
如果您可以更改该代码,可以通过以下两种方法仅定位该处理程序:
1.使用命名函数:
连接起来:
function playClick(evt){
player.play();
}
$('.play-control').on('click', playClick); // Or use `bind`
解开它:
$('.play-control').off('click', playClick); // Or use `unbind`
2.使用“事件命名空间”:
连接起来:
$('.play-control').on('click.play', function(evt){ // Or use `bind`
player.play();
});
解开它:
$('.play-control').off('click.play'); // Or use `unbind`
请注意添加到 click
的 .play
。
关于javascript - 如何取消绑定(bind)到元素的点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37078542/