0

JQueryを使用してクラスを割り当てて無効にするのではなく、カスタムバインディング内でdisabledとcssをバインドしたいと思います。実行せずにカスタムバインディング内でこれを実行できますか$(element).attr('disabled', true).addClass('disabled');

data_bind="enabled: classroomId(), css: { 'disabled' : !classroomId() }"


data_bind="disable: { !classroomId() }

ko.bindingHandlers.disable = {
        update: function (element, valueAccessor) {
            var disabled = ko.utils.unwrapObservable(valueAccessor());


                 // Disable and Add Class to Button or Anchor Tag

        }
    };
4

1 に答える 1

2

Knockoutにはdisable、有効なものを反映したバインディングが含まれるようになりました。jQueryを使用するか、既存のcssと無効なバインディングを呼び出すことができます(fiddle)。

ko.bindingHandlers.myDisabled = {
    update: function(element, valueAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor());
        ko.bindingHandlers.css.update(element, function() {return { disabled: value }; });
        ko.bindingHandlers.disable.update(element, valueAccessor);
    }
};

HTML:

<input type="text" data-bind="value: name, myDisabled: !enabled()"/>
于 2012-05-30T05:01:20.370 に答える