在调用jQuery
unbind()
之前,是否需要为html元素执行off()
jQuery
或html()
函数以避免内存泄漏?
答案 0 :(得分:7)
不,这不是必需的。
html
功能负责在设置innerHTML
之前清理所有内容。
此外,jQuery删除了其他构造,如数据和事件 在用这些元素替换之前,来自子元素的处理程序 新内容。
实施细节:
html
函数调用代码在此处的empty
:
empty: function() {
var elem,
i = 0;
for ( ; (elem = this[i]) != null; i++ ) {
// Remove element nodes and prevent memory leaks
if ( elem.nodeType === 1 ) {
jQuery.cleanData( getAll( elem, false ) );
}
// Remove any remaining nodes
while ( elem.firstChild ) {
elem.removeChild( elem.firstChild );
}
// If this is a select, ensure that it displays empty (#12336)
// Support: IE<9
if ( elem.options && jQuery.nodeName( elem, "select" ) ) {
elem.options.length = 0;
}
}
return this;
},