Jou*_*key 9 jquery binding event-handling
我有一些事件绑定的元素.在删除这些元素之前,我是否需要先取消绑定它们?如果我不这样做会导致问题吗?
谢谢.
编辑:我意识到我错误地表达了这个问题,所以现在我正在进行编辑,请原谅我,但我认为这样做比做一个新问题更有意义.
如果我更换它,我将不得不在元素上使用unbind或remove,对吧?使用js替换方法或jquery中的html方法.
Era*_*lel 17
不,您不需要这样做(事件解除绑定在删除时自动完成).
如果您不再需要页面上事件的事件处理程序,则唯一需要显式取消绑定的时间.
从DOM中删除元素也会导致该元素的事件和数据被删除.这是相关的源代码
remove: function( selector ) {
if ( !selector || jQuery.filter( selector, [ this ] ).length ) {
// Prevent memory leaks
jQuery( "*", this ).add([this]).each(function(){
jQuery.event.remove(this);
jQuery.removeData(this);
});
if (this.parentNode)
this.parentNode.removeChild( this );
}
}
Run Code Online (Sandbox Code Playgroud)