【发布时间】:2018-05-03 10:47:22
【问题描述】:
我正在使用 Knockout JS 应用程序。这里我在使用 ko.cleanNode(node) 时遇到问题,它会删除 focusout 客户端事件。即,在调用 cleanNode 方法之前 focusOut 在文本框上正常工作。之后 focusOut 事件不会触发。我检查了许多堆栈溢出问题,我只找到了这个删除的原因,没有任何替代解决方案。这是我的代码。
$("#btn").click(function() {
viewModel = {
nValue: ko.observable(10)
}
ko.cleanNode(document.getElementById("txt"));
ko.applyBindings(viewModel, document.getElementById("txt"));
});
ko.applyBindings({
nValue: ko.observable(100)
});
$("#txt").on("focusout", function() {
alert("focusOut");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<input type="text" id="txt" data-bind="value: nValue" />
<input type="button" id="btn" value="cleannode" />
【问题讨论】:
标签: javascript jquery knockout.js knockout-3.0