【发布时间】:2017-09-14 15:10:56
【问题描述】:
在我的代码的某个点,我需要从 AJAX 请求中提取一个 html 字符串并用它替换某个容器。
我有这个,但是,正如网络上的一些参考资料所述,它被垃圾收集并取消绑定事件侦听器
this.rightPanel.innerHTML = content;
但是,jQuery .html() 函数不会发生这种情况,它使事件侦听器保持工作,所以这样做
$(this.rightPanel).html(content);
工作无缺陷。
我不想使用 jQuery 进行 DOM 操作,即使浏览器本身支持它。我必须重现与 jQuery .html() 相同的行为的最佳选择是什么?
谢谢
【问题讨论】:
-
“但是,jQuery .html() 函数不会发生这种情况......” 是的,它会发生。 “...使事件侦听器保持工作...”不,它没有。
-
我不想使用 jQuery 进行 DOM 操作,即使浏览器本身支持它。 JQuery 是 JavaScript。所有浏览器都支持它。
-
@ScottMarcus,我的意思是,我想使用原生 DOM 函数,比如 querySelector,而不是使用像 jQuery 这样的库。
标签: javascript jquery dom dom-manipulation