Knockout cleanNode()会删除jquery事件绑定?

前端之家收集整理的这篇文章主要介绍了Knockout cleanNode()会删除jquery事件绑定?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_1@Knockout的cleanNode()函数似乎是在节点内的元素上删除jQuery的事件绑定.我该如何防止这种情况?
在cleanNode()中也没有太多的文档.

解决方法

直接从 knockout docs

“覆盖外部数据的清理

删除元素时,Knockout运行逻辑来清理与元素相关联的任何数据.作为这个逻辑的一部分,如果jQuery加载在你的页面中,Knockout会调用jQuery的cleanData方法.在高级情况下,您可能希望防止或自定义应用程序中如何删除此数据. Knockout公开了一个函数,ko.utils.domNodeDispose.cleanExternalData(node),可以被覆盖以支持自定义逻辑.例如,为了防止cleanData被调用,可以使用空函数来替换标准的cleanExternalData实现:

ko.utils.domNodeDisposal.cleanExternalData = function () {
    // Do nothing. Now any jQuery data associated with elements will
    // not be cleaned up when the elements are removed from the DOM.
};

最近我因为无休止的调试会话而疯狂.

我看到这个问题,希望我的答案能为那些仍然在寻找的人提供一个更直接的解决方案.

猜你在找的jQuery相关文章