私はKnockout JSアプリケーションを使用しています。ここで私はko.cleanNode(ノード)を使用すると、フォーカスアウトクライアントイベントを削除するときに問題があります。すなわち、cleanNodeメソッドを呼び出す前に、focusOutはテキストボックス上で正しく動作します。その後、focusOutイベントはトリガーされません。私はスタックのオーバーフローの質問の多くをチェックして、私はこの除去の原因を見つけただけで、代替ソリューションではありません。ここに私のコードがあります。ko.cleanNodeはjQuery .on( "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" />
グレート答え:あなたはこのように結合knokcoutの
click
とevent
を使用することができます。直接の質問に対処し、さらにノックアウトの解決策を提供します。 – pimbrouwers