我使用jQuery将事件处理程序绑定到元素,但也许还有一种方法可以检查使用普通的JavaScript ...
如果我使用如下所示的代码,有没有办法测试元素是否已添加事件处理程序?当我再次运行该函数(更新img src)时,事件会再次绑定,然后是第三次绑定,等等.最简单的方法是什么?
$(window["tdImg_"+i]).add(window["tdImgSize_"+i]).bind('click', toggleImageSize);
Run Code Online (Sandbox Code Playgroud)
这是一个解决方案:
$(window["tdImg_"+i]).each(function(){
if(!this.boundToggleImageSize){
$(this).bind('click', toggleImageSize);
this.boundToggleImageSize = true;
}
});
Run Code Online (Sandbox Code Playgroud)
这样,您就不必解除所有单击事件的绑定(如果在相同元素上有不同的绑定功能).
编辑
正如millimoose在评论中所建议的那样:
$(window["tdImg_"+i]).each(function(){
if(!$(this).data("boundToggleImageSize")){
$(this).bind('click', toggleImageSize);
$(this).data("boundToggleImageSize",true);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2536 次 |
| 最近记录: |