Chr*_*ier 0 jquery events event-handling
我在这做错了什么?我阅读了文档,但我似乎无法弄清楚为什么这不按预期工作.
$(".img-edit-button").on("click", function () {
if(self.elementMenuOpen === false){
self.showImageMenu();
self.elementMenuOpen = true;
}else{
self.hideImageMenu();
self.elementMenuOpen = false;
}
});
Run Code Online (Sandbox Code Playgroud)
然后,我用 off()
$(".img-edit-button").off();
Run Code Online (Sandbox Code Playgroud)
但即使在使用.off()了我缺少的东西之后事件似乎也在翻倍?
这直接来自http://api.jquery.com/off/ "off()方法删除了附加.on()"的事件处理程序.因此,如果在调用off后绑定click事件,它们将继续执行.我猜你是多次重新绑定到click事件.
一种解决方案是将事件绑定到父节点,只需一次,因此每次从dom添加/删除有问题的元素时都不必重新绑定.我知道这可能有一些性能问题,但让你的父类尽可能深入dom将有助于此.
$(".someparentclass").on('click','.img-edit-button',function(){});
Run Code Online (Sandbox Code Playgroud)
或者,如果要重新绑定,可以使用以下命令:
$(".img-edit-button").off().on(function(){});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7280 次 |
| 最近记录: |