取消绑定将在稍后添加到DOM的元素的事件

时间:2015-04-29 09:53:06

标签: javascript jquery dom unbind

我有一个div = class =“backdrop”。单击按钮时,这将添加到DOM中。对于这是一个“轮子”的事件。

我无法避免事件的绑定(通过库发生)所以我想要全局解除绑定。

我试过了:$(".modal-backdrop.am-fade").unbind('wheel');

这有效但我必须在每次将div添加到DOM之后编写此语句。 I want something which I can write only once and would apply to all the divs which would be added to the DOM in future

1 个答案:

答案 0 :(得分:0)

  

我想要一些我只能写一次的东西,并且适用于将来添加到DOM中的所有div

如果你正在使用的库中的代码是向它们添加元素和绑定事件,那么你必须在你去的时候取消绑定它们,没有别的选择。

如果您已经有某种触发方式(库会告诉您何时添加div),那么您只需让该代码响应该事件。

如果您已经有某种触发方式,您可以使用mutation observers来监听正在添加的div,以便您可以取消绑定它们。它们得到了现代浏览器的良好支持。稍微不那么现代的浏览器可能对旧的变异事件有足够的支持,你可以使用一个库来提供使用变异事件的变异观察者polyfill(只需搜索"变异观察者polyfill") 。最糟糕的情况是,在非常古老的浏览器上,你必须进行民意调查。

当然,最好的答案是要么停止使用图书馆,如果它没有做你想要的,或者修改它(毕竟这是JavaScript)所以它不会做你所做的事情#39; t想要。