2012-03-22 34 views
1

我有一個淘汰賽viewmodel包含兒童viewmodels。當在導航欄上進行選擇時,身體會更改爲選擇任何一個孩子。jqueryui手風琴失去綁定敲除可見變化

當父虛擬機初始化時(在ko綁定之後),它會調用子虛擬機上的init,然後創建相應的jqueryUI綁定。

問題是,父母之間切換選定的導航選擇,隱藏不同的虛擬機孩子的div。當你切換回它們時,jqueryui綁定消失了。

任何人都知道這裏發生了什麼?我認爲Knockoutjs的可見屬性只是翻轉父容器的css可見屬性。爲什麼jqueryui會失去它的約束力?

http://jsfiddle.net/Gehh9/

+0

您的代碼不會在所有的工作,http://jsfiddle.net/bbmxD/我很高興這個問題的可能性,但我不看到你能夠展示一些有用的代碼來開始。 – deltree 2012-03-22 20:01:09

+0

哦,我是這裏的第一個職位,已經有了負面的觀點。我修正了示例代碼中的錯誤,現在它按照描述「工作」,即在選擇第二個選項並切換回第一個選項後,它會中斷。這裏是更新的鏈接:http://jsfiddle.net/Gehh9/ – user1286792 2012-03-22 20:08:58

+0

不用擔心,把你​​的jsfiddle在你的文章中進行編輯,我可以刪除downvote :) – deltree 2012-03-22 20:26:18

回答

0

這是因爲你的結合。

結合(與的foreach沿)控制所述數據的下方綁定元素的上下文。您的可見綁定會更改元素的可見性,這很好,但由於它綁定在綁定的旁邊,所以元素會重新呈現。

這個可能是Knockout中的一個bug,因爲實際上你並不想首先從DOM中去掉元素。您可能想要在Knockout郵件列表中報告這一點。

這裏的an updated fiddle跳過綁定,你會注意到它工作正常,即使可見綁定仍然存在。