微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在jQuery中取消绑定

如果从页面删除元素,它会自动解除绑定吗?或者这是一个应该使用 jquery的unbind取消绑定的场景?

我认为它是自动完成的……

解决方法

如果使用 removeempty删除元素,将自动删除事件处理程序以防止内存泄漏.否则它们将保留,除非它们在删除这些元素之前明确解除绑定.

编辑:结果.html也将通过调用内部.cleanData方法(在第5177行声明)删除事件处理程序.您可以在source中查看:

html: function( value ) {
   ...

    for ( var i = 0,l = this.length; i < l; i++ ) {
                    // Remove element nodes and prevent memory leaks
                   if ( this[i].nodeType === 1 ) {
                       jQuery.cleanData( this[i].getElementsByTagName("*") );
                       this[i].innerHTML = value;
                    }
                }
   ...

因此,为了避免内存泄漏,请不要直接使用innerHTML来替换附加了jQuery事件处理程序的DOM元素.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐