Javascript 如何使用knockout js创建可观察的css类

Javascript 如何使用knockout js创建可观察的css类,javascript,jquery,html,css,knockout.js,Javascript,Jquery,Html,Css,Knockout.js,这是我的代码: HTML: javascript: $(document).ready(function () { $("#myDiv").addClass("enabled").html(" Enabled"); $("#btnEnable").click(function () { $("#myDiv").removeClass("disabled"); $("#myDiv").addClass("enabled").html(" Enabled"); });

这是我的代码:

HTML:

javascript:

$(document).ready(function () {
  $("#myDiv").addClass("enabled").html(" Enabled");

  $("#btnEnable").click(function () {
    $("#myDiv").removeClass("disabled");
    $("#myDiv").addClass("enabled").html(" Enabled");
  });
  $("#btnDisable").click(function () {
    $("#myDiv").addClass("disabled").html(" Disabled");
    $("#myDiv").removeClass("enabled");
  });
  var viewModel = function(){
    enableText =  ko.observable(true)
  }
  ko.applyBindings(viewModel);
});
当我单击disable按钮时,启用的css类被删除。此时,我需要禁用textarea by KO observable viewModel

var viewModel = function(){
    enableText =  ko.observable(here must return false when the enable css class is removed)
}

您需要单击、css和文本绑定:

$(document).ready(
    var viewModel= function () {
        var self = this;
        self.enableClick = function () {
            self.enable(true);
        };
        self.disableClick = function () {
            self.enable(false);
        };
        // Stores the enable state
        self.enable = ko.observable();
        // Get a text representation of the state 
        self.enableText = ko.computed(function(){
           return self.enable() ? 'Enabled' : 'Disabled';
        });
    };
    ko.applyBindings(new viewModel());
});
观点:

<div>
   <input type="button" data-bind="click: enableClick" value="Enable" />
   <input type="button" data-bind="click: disableClick" value="Disable" />
</div>

<div data-bind="text: enableText, css :{'enabled' : enable,'disabled' : enable() != true }">Some Text</div>
<textarea rows="5" id="someText" data-bind="enable: enable"></textarea>

一些文本

@pasluc74669,“其他”你能说得更具体些吗?它可以正常工作,但我需要其他东西:当删除/添加css类时,我需要通过淘汰模型视图启用/禁用textarea。可能吗?是的,可能。在99%的情况下,这是个坏主意,因为KO负责更改UI。我的意思是你改变了视图模型,改变了视图。
$(document).ready(
    var viewModel= function () {
        var self = this;
        self.enableClick = function () {
            self.enable(true);
        };
        self.disableClick = function () {
            self.enable(false);
        };
        // Stores the enable state
        self.enable = ko.observable();
        // Get a text representation of the state 
        self.enableText = ko.computed(function(){
           return self.enable() ? 'Enabled' : 'Disabled';
        });
    };
    ko.applyBindings(new viewModel());
});
<div>
   <input type="button" data-bind="click: enableClick" value="Enable" />
   <input type="button" data-bind="click: disableClick" value="Disable" />
</div>

<div data-bind="text: enableText, css :{'enabled' : enable,'disabled' : enable() != true }">Some Text</div>
<textarea rows="5" id="someText" data-bind="enable: enable"></textarea>