gpt4 book ai didi

bind - 如何检查事件处理程序是否已绑定(bind)到元素?

转载 作者:行者123 更新时间:2023-12-01 00:48:39 26 4
gpt4 key购买 nike

我正在使用 jQuery 将事件处理程序绑定(bind)到元素,但也许还有一种方法可以使用普通 JavaScript 进行检查...

如果我使用如下所示的代码,有没有办法测试元素是否已经添加了事件处理程序?当我再次运行该函数(以更新 img src)时,事件将被第二次绑定(bind),然后下一次第三次,等等。最简单的方法是什么?

$(window["tdImg_"+i]).add(window["tdImgSize_"+i]).bind('click', toggleImageSize);

最佳答案

解决方案如下:

$(window["tdImg_"+i]).each(function(){
if(!this.boundToggleImageSize){
$(this).bind('click', toggleImageSize);
this.boundToggleImageSize = true;
}
});

这样,您就不必取消绑定(bind)所有点击事件(如果您在同一元素上有不同的绑定(bind)函数)。

编辑

根据millimoose的建议在评论中:

$(window["tdImg_"+i]).each(function(){
if(!$(this).data("boundToggleImageSize")){
$(this).bind('click', toggleImageSize);
$(this).data("boundToggleImageSize",true);
}
});

关于bind - 如何检查事件处理程序是否已绑定(bind)到元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12664848/

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