Mat*_*rym 8 jquery bind unbind
如果从页面中删除元素,它会自动解除绑定吗?或者这是一个应该使用jquery的unbind取消绑定的场景?
我认为它是自动完成的......
如果使用removeor 删除元素empty,则会自动删除事件处理程序以防止内存泄漏.否则它们将保留,除非它们在删除这些元素之前明确解除绑定.
编辑:.html通过调用内部.cleanData方法(在第5177行声明),结果将删除事件处理程序.你可以在源代码中查看:
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;
}
}
...
Run Code Online (Sandbox Code Playgroud)
因此,为避免内存泄漏,请不要直接使用innerHTML替换已附加jQuery事件处理程序的DOM元素.
| 归档时间: |
|
| 查看次数: |
1208 次 |
| 最近记录: |