gpt4 book ai didi

javascript - 解除绑定(bind)涉及从 DOM 中删除 jquery 的点击事件

转载 作者:行者123 更新时间:2023-11-28 05:14:03 31 4
gpt4 key购买 nike

我知道解除绑定(bind)事件是公认的,但由于某种原因,这不起作用。如果调用“trash_mode”方法,它会将事件处理程序附加到“my_div”,这样当单击这些 div 时,它们就会从 DOM 中删除:

function trash_mode() {
$('#my_div').click(function remove_from_dom(){
var id = $(this).attr('id');
var use_id = "#" + id;
$(use_id).remove();
});
}

这很好用。然后,我想再次调用“trash_mode”方法以从 div 中删除此事件处理程序。例如,我可能会尝试:

$('#my_div').off("click", "remove_from_dom");

当再次调用该函数时(使用某种切换机制)。但这不起作用...div 仍然从 DOM 中删除(点击事件仍然附加)。

有没有办法在每次调用“trash_mode”方法时在“remove_from_dom”方法(打开和关闭)之间切换?

最佳答案

jQuery API 文档说 .off() 函数的第二个参数是选择器,而不是处理程序的名称。

API Doc

看来您想要的最好方法是在所有 div 的某些父元素上调用 .off() 函数并使用第二个参数来选择它们。

$('#my_div_parent').off("click", "#my_div");

文档还指出 .off() 函数应与 .on() 配对,因此如果您仍然无法删除该事件处理程序,您可以首先尝试更改附加事件处理程序的方式。

关于javascript - 解除绑定(bind)涉及从 DOM 中删除 jquery 的点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41133142/

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