javascript - knockout - foreach : Change button color on click

标签 javascript knockout.js

我有一个表格,列出了可观察数组中的元素。我遇到困难的是,当单击按钮时,按钮会更改颜色并更改为“选定”的值,如果再次单击按钮,则会反转。作为测试,我已成功将按钮文本颜色绑定(bind)到当前有效的 $data 中的属性。当我单击并更改属性值时,没有任何反应。

问题出在按钮标签上。

示例代码:

<tbody data-bind="foreach: slcs ">
<tr>
    <td data-bind="text: slc"></td>
    <td>
        <div class="form-group">
            <select class="form-control input-sm runinputs" data-bind="selectedOptions: $data.pbr, optionsCaption: 'Choose'">
                <option value="1">1</option>
                <option value="2">2</option>
            </select>
        </div>
    </td>
    <td>
        <div class="form-group">
            <select class="form-control input-sm runinputs" data-bind="selectedOptions: $data.of, optionsCaption: 'Choose'">
                <option value="1">1</option>
                <option value="2">2</option>
            </select>
        </div>
    </td>
    <td>
        <div class="form-group">
            <select class="form-control input-sm runinputs" data-bind="selectedOptions: $data.lotsize, optionsCaption: 'Choose'">
                <option value="1">1</option>
                <option value="2">2</option>
            </select>
        </div>
    </td>
    <td><button class="btn btn-sm btn-info" data-bind="click: $data.status = 0,  click: function() { $parent.selectSetting($data); }, style: { color: $data.status = 0 ? 'red' : 'black' }">Select</button></td>
</tr>

最佳答案

我不知道你的父模型是什么样的,或者 selectSetting 应该完成什么,但我确实注意到了

<button class="btn btn-sm btn-info" data-bind="click: $data.status = 0,  click: function() { $parent.selectSetting($data); }, style: { color: $data.status = 0 ? 'red' : 'black' }">

您的第一次点击绑定(bind)将项目的状态设置为0,但不会切换它。所以这是一个问题。

另一个问题是在 style 部分,其中有 = 而不是 ==

关于javascript - knockout - foreach : Change button color on click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41064113/

相关文章:

javascript - Knockout JS 和简单的功能

javascript - knockout 绑定(bind)处理程序不起作用 : Why?

javascript - 多事件绑定(bind)快捷方式

javascript - 使用 Durandal JS 自动完成文本框

javascript第一个参数路径最后一个参数回调

javascript - 如何根据鼠标移动/位置应用效果?

javascript - 当某些操作会设置 cookie 时,让我的页面显示 cookie 信息

javascript - 暂停youtube视频的内容脚本

javascript - BS 3 在单击链接并显示选项卡时获取数据属性值

javascript - KnockoutJS observableArray 在通知订阅者之前是否会区分新旧数组?