【发布时间】:2013-08-14 11:15:56
【问题描述】:
我发现理论上ko.cleanNode() 应该在调用时从节点中删除绑定,但在 this example 中它似乎不起作用。
Javascript:
// View model
var vm = {
name: ko.observable("John")
}
// Node to be added
var node = $("<div/>",{
id: "testing",
'data-bind' : "text: name()"
});
// First addition to body
$("body").append(node);
// Apply bindings
ko.applyBindings(vm,$("#testing")[0]);
// Remove
ko.cleanNode($("#testing")[0]);
$("#testing").remove();
$("body").append(node);
结果:您可以在 jsFiddle 中看到,该节点仍然具有附加绑定(事件侦听器)。
【问题讨论】:
-
标准 KO 绑定不跟踪事件监听器。
cleanNode删除“内部绑定”。请参阅stackoverflow.com/a/15069509/2246674 - 我发现最好的方式是简单地与 KO 一起玩。
标签: javascript jquery events knockout.js