如何使用Knockout JS添加类?

时间:2014-05-14 13:07:11

标签: javascript html5 knockout.js

我第一次尝试淘汰赛,并完成了基础教程并查看了各种示例。

但是trying it myself(jsFiddle)并不常用。

我想要做的就是在点击&#34时将等级open添加到div中;点击我"文本。

我在这里缺少什么?

//HTML
<div class="clickMe" data-bind="click: expand">Click me</div>

<div class="wrapper">        
    <div class="content" data-bind="css: {expandMenu : open}">
      This is a test
    </div>
</div>

//JS
function viewModel() {
    var self = this;

    self.expandMenu = ko.observable(false);

    self.expand = function () {
        self.expandMenu(!self.expandMenu());
    };
};
ko.applyBindings(new viewModel());

// CSS
.content {display: none;}
.content.open {display: block;}    

1 个答案:

答案 0 :(得分:3)

使用css绑定中的observable修复此开关类名称:

data-bind="css: {open : expandMenu}"

另外,你可以使用css绑定这样的格式:

data-bind="css: getClassForSomething()" // getClassForSomething must return css class (string)

data-bind="css: { open: isSomethingDone() }" // considering that isSomethingDone is viewmodel's method