0

DOM の初期化後の一番下にこれがあります。

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

これは画面上のすべてのボタンで問題なく機能しますが、後で表示されるボタンにはテーマが適用されていません。ページでのユーザーの操作に応じてフォームを表示するために、knockout.js の「可視」バインディング サポートを使用しています。いつ作成されたかに関係なく、すべてにjqueryUIテーマを適用するクリーンな方法は何ですか?

4

1 に答える 1

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="">
于 2012-05-28T22:08:35.057 に答える