gpt4 book ai didi

javascript - 如何取消绑定(bind)到元素的点击事件?

转载 作者:行者123 更新时间:2023-11-27 23:01:18 24 4
gpt4 key购买 nike

我知道如何使用 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

文档中的更多内容:on , off

关于javascript - 如何取消绑定(bind)到元素的点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37078542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com