javascript - knockout 启用绑定(bind)不起作用

标签 javascript jquery knockout.js

我无法让启用绑定(bind)在 Knockout JS 中工作。将 enabled 属性设置为 false,按钮不会被禁用,我仍然可以点击它。

参见 fiddle

<a  class="btn btn-xl btn-primary" 
    href="#" 
    role="button" 
    data-bind="enable: enabled, click: clicked, visible: isVisible">
        <i class="icon-only icon-ok bigger-130"></i>
</a>      

var ViewModel = function(){
    var self = this;

    self.enabled = ko.observable(false);
    self.isVisible = ko.observable(true);
    self.clicked = function(){
        alert('You clicked the button');
    };
};

$(function(){
    var model = new ViewModel();
    ko.applyBindings(model);
})          

最佳答案

Enable绑定(bind)不适用于您想要的任何东西。

This is useful with form elements like input, select, and textarea It also works with buttons. Like in my example http://jsfiddle.net/5CbnH/1/

但它不适用于您的链接。您正在使用 twitter bootstrap,他们使用 css 类启用/禁用他们的“按钮”。所以你必须使用 css binding像这样:

data-bind="css: { yourClass: enabled }"

检查 Bootstrap 中哪个类负责显示您的“按钮”,并使用 css 绑定(bind)相应地修改您的代码。

关于javascript - knockout 启用绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22701074/

相关文章:

javascript - Quill js字体大小问题

javascript - Tumblr API 用于获取具有相同标签的所有用户的帖子

javascript - jQuery 最小宽度与宽度 : How to remove px?

Knockout.js 映射选项在嵌套值上被忽略

javascript - 如果数据绑定(bind)对象只有名称,那么 knockout 如何知道它?

javascript - 将 knockout 与关联数组一起使用

javascript - 从同一个点击事件中停止两个或多个点击事件

javascript - Vuelidate isUnique 导致无限循环

javascript - 如何将 HTML Div 与线条连接起来?

javascript - 为什么我不能在 css 中将某些 div 的位置排序到另一个 div 的顶部?