javascript - Knockout - 如何从一组复选框绑定(bind)外部容器 CSS?

标签 javascript css twitter-bootstrap knockout.js

好吧,诚然,这个问题的语法很糟糕,但事实是这样的:

我在我的网站中使用以下内容:

  • Twitter Bootstrap
  • knockout
  • Durandal

我正在尝试将 css 类添加到复选框周围的外部标签(在复选框列表中),以便它可以突出显示所选的复选框。本质上代码是这样的:

<div data-bind="foreach:values">
    <label class="checkbox inline btn" data-bind="css: { }">
        <input type="checkbox" data-bind="attr: { value: text }, checked: $parent.checkedValues" /> 
        <span data-bind="text: text"></span>
    </label>
</div>

所以,我想做的是将 btn-primary 类添加到选中的复选框的外部标签中。我没有将完整的 View 模型放在这里,而是创建了一个 fiddle :http://jsfiddle.net/riceboyler/WEPRZ/1/

我认识到我可以使用 $data 对象来获取当前元素,但我不知道如何检查并查看当前元素 ($data.text) 是否在 selectedValues observableArray 中。我确信我可能缺少基本的 Javascript,但是有没有办法在不使用计算值的情况下做到这一点?

最佳答案

您可以通过检查父级的 checkValues 数组,直接在 css 绑定(bind)中执行此操作。

<label 
    class="checkbox inline btn" 
    data-bind="css: {'btn-primary': $parent.checkedValues.indexOf(text) > -1}">

See the Fiddle

关于javascript - Knockout - 如何从一组复选框绑定(bind)外部容器 CSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16319892/

相关文章:

html - 表格内的垂直线嵌套/交错组

jquery - 在移动设备上查看时,Bootstrap 会更改 div 上的类

javascript - WebSocket 连接失败。 Websocket 握手期间出错。响应代码 403?

javascript - 短属性名称和长属性名称之间的映射

jQuery 动画 div : button disapears (z-index bug? )

css - 模态弹出窗口,链接不起作用?

html - 将 twitter bootstrap 添加到当前元素

javascript - d3.js 比特币图表形状错误

javascript - 使用 SetTimeOut 淡出相互平铺的元素列表

css - 这个width属性值声明中的\9是什么意思?