2012-09-13 37 views
0

我似乎無法讓ddSlick(基於圖像的下拉列表jQuery插件)的自定義綁定處理程序正常工作。寫一個自定義ddSlick KnockoutJS bindingHandler

我總是可以將它綁定到靜態數據上,但由於某種原因,一旦ddSlick被初始化,KO就不會調用綁定器的更新方法。這太瘋狂了!我實際上可以從自定義綁定中刪除$(element).ddslick()調用,並且再次調用更新方法!

請隨意使用或者這個鏈接來測試我的代碼(更容易與調試)http://mjf.me/Dev/ddSlickBinder.html

或這個JS小提琴 http://jsfiddle.net/farina/JSTUA/1/

提前感謝!

+0

ko未在您的示例中定義... –

回答

4

http://jsfiddle.net/amtiskaw/nEVsP/

有竟是一對夫婦的問題在這裏。首先,ddslick插件替換它被調用的元素。 Knockout檢測div何時被移除並清理其註冊的綁定,因此爲什麼slickIt更新從未被調用過一次。我通過添加一個子div並調用插件來解決此問題。

第二個是,ddslick將忽略隨後嘗試初始化它在同一個元素上。我通過事先調用'destroy'來解決這個問題,以便移除任何預先存在的ddslick實例。

+0

太棒了!爲什麼我沒有想到這一點!我注意到它刪除了DOM節點,但沒有考慮到與KO的內部綁定混淆。至於摧毀的東西,我抓住了那個......我只是沒有把它包含在我的演示中,因爲我不想把這個問題混淆爲其他人:)。非常感謝! – farina

相關問題