初期化関数に Knockout バインディングを適用し、jQuery デリゲートを使用して他のイベントをバインドします。
init = function (){
ko.applyBindings(_data);
$('#tabs').tabs();
$('#container').delegate(".expand_all", "click", (function () {...})
}
ビュー モデルには、オブザーバブルと、ajax 呼び出し後にオブザーバブルを変更する関数があります。
function(data){
var self = this;
var name = ko.observable(data.name);
self.changeName = function(){
getName(function(data){
......
self.name(data.name);
......
......
}
}
}
HTML マークアップ
<div id="container">
<a href='#' data-bind='click: changeName'></a>
<div id="tabs">
<ul>
<li>......</li>
<li>......</li>
</ul>
</div>
<a href='#' class="expand_all"></a>
</div>
奇妙なことに、changeName がトリガーされた後、#tabs と #div のイベント バインディングが失われました。
誰か光を当ててください。