DOM の初期化後の一番下にこれがあります。
$("button, input:submit, input:button").button();
これは画面上のすべてのボタンで問題なく機能しますが、後で表示されるボタンにはテーマが適用されていません。ページでのユーザーの操作に応じてフォームを表示するために、knockout.js の「可視」バインディング サポートを使用しています。いつ作成されたかに関係なく、すべてにjqueryUIテーマを適用するクリーンな方法は何ですか?
DOM の初期化後の一番下にこれがあります。
$("button, input:submit, input:button").button();
これは画面上のすべてのボタンで問題なく機能しますが、後で表示されるボタンにはテーマが適用されていません。ページでのユーザーの操作に応じてフォームを表示するために、knockout.js の「可視」バインディング サポートを使用しています。いつ作成されたかに関係なく、すべてにjqueryUIテーマを適用するクリーンな方法は何ですか?
そこにある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="">