Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery事件在“之后不触发”;“清洁”;敲除绑定_Javascript_Jquery_Html_Button_Knockout.js - Fatal编程技术网

Javascript jQuery事件在“之后不触发”;“清洁”;敲除绑定

Javascript jQuery事件在“之后不触发”;“清洁”;敲除绑定,javascript,jquery,html,button,knockout.js,Javascript,Jquery,Html,Button,Knockout.js,在我的项目中,我有一个,其中我专门应用了Knockout.js绑定。我必须根据用户单击的内容在该区域实例化不同的ViewModel 为了防止在同一个元素错误上两次无法调用绑定,我首先必须“清理”绑定以使该区域再次可用。我调用初始的applyBindings()函数: ko.applyBindings(new ViewModel("Planet", "Earth"), document.getElementById("bindings-area")); 最后,我将清理,并调用新绑定: var e

在我的项目中,我有一个
,其中我专门应用了Knockout.js绑定。我必须根据用户单击的内容在该区域实例化不同的ViewModel

为了防止在同一个元素错误上两次无法调用绑定,我首先必须“清理”绑定以使该区域再次可用。我调用初始的
applyBindings()
函数:

ko.applyBindings(new ViewModel("Planet", "Earth"), document.getElementById("bindings-area"));
最后,我将清理
,并调用新绑定:

var element = $("#bindings-area")[0];
ko.cleanNode(element);
ko.applyBindings(new ViewModel("NEW", "Bindings"), document.getElementById("bindings-area"));
问题:当我在
#bindings区域
div中包含一个HTML按钮时,在清理绑定并实例化新模型后,它将不再工作。我确信这与
ko.cleanNode()
函数也以某种方式删除了按钮绑定有关。我如何重新启动它们或首先阻止
cleanNode()
对按钮进行操作


小提琴:

中很好地描述了这个问题。此引文描述了问题所在以及需要执行的操作:

删除元素时,Knockout运行逻辑来清理任何数据 与元素关联。作为这一逻辑的一部分,击倒呼叫 如果页面中加载了jQuery,则使用jQuery的
cleanData
方法。在里面 在高级方案中,您可能希望阻止或自定义此数据的传输方式 已在应用程序中删除。敲除公开了一个函数,
ko.utils.domNodeDisposal.cleanExternalData(节点)
,可以 重写以支持自定义逻辑。例如,为了防止
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.
};
这里是最新的