javascript - 如何使用 Knockout JS 添加类?

标签 javascript html knockout.js

我是第一次尝试 Knockout,并且已经完成了基本教程并查看了各种示例。

但是trying it myself (jsFiddle) 不太有效。

我想做的就是在单击“Click me”文本时将 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;}    

最佳答案

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

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

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

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

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

关于javascript - 如何使用 Knockout JS 添加类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23655663/

相关文章:

javascript - 为什么onclick事件会导致ibook电子书阅读器中的翻页事件?

javascript - 通过 JavaScript 加载 Google 跟踪代码管理器

javascript - 在 js 的 onClick 函数中高亮显示 <li>

html - MS Edge 上的 CSS 选框

html - HTML 能理解 "if-else"吗?

javascript - knockout 移动/滑动突出显示的选择 CSS

javascript - 如何为 joi-objectid 提供接口(interface)?

javascript - JQuery/Javascript - 设置多个下拉列表以匹配链接点击时的主下拉列表

zend-framework - Durandal:如何将配置数据从 HTML Host 传递到 ViewModel?

binding - 有没有办法找出 knockout 模型中的哪些变量当前绑定(bind)到 DOM?