2012-05-28 33 views
0

我在我的DOM後初始化的底部得到這個UI主題不適用:jQuery的使用knockout.js時隱藏/顯示

$("button, input:submit, input:button").button(); 

這工作正常,屏幕上所有的按鈕,但稍後顯示的按鈕不適用主題。我在knockout.js中使用「可見」綁定支持根據用戶在頁面上的交互來顯示錶單。無論何時創建jqueryUI主題,乾淨的方式是什麼?

+0

你可以發佈一個小提琴,顯示問題? –

回答

1

不,它不會,因爲除非您繼續重新應用您擁有的jquery按鈕代碼,否則不會轉換新按鈕。

然而,有一種更好的方式與處理程序,例如做,我用這個...

ko.bindingHandlers.button = { 
     init: function (element, valueAccessor, allBindingsAccessor) { 
      var options = allBindingsAccessor().buttonOptions || {}; 
      $(element).button(options); 

      ko.utils.domNodeDisposal.addDisposeCallback(element, function() { 
       $(element).button("destroy"); 
      }); 

     } 
    }; 

現在你可以綁定的東西是按鈕。例如

<button data-bind='button:{}, buttonOptions:{icons: {primary: "ui-icon-pencil"}}' onclick=""> 
+0

不錯,但爲什麼不把選項放在按鈕綁定上,只使用valueAccessor? –