敲除检查并单击两者(防止双重复选框切换)

时间:2015-04-01 14:36:28

标签: knockout.js

我的复选框描述如下:

<input id="checkbox1" type="checkbox" data-bind="
    click: function () { handle_compare($element) },
    checked: is_product_compared">

.handle_compare()只是反转了可观察的“is_product_compared”,问题是允许这个复选框的正常行为,如果我点击它,看起来是双开关,我从来没有看到变化。

如果我将handle_compare绑定到按钮 - 一切正常,则复选框正常切换。有没有办法允许这两种绑定?

你可以在这里看到一个演示,按钮没问题,但是复选框有错误的行为。

http://jsfiddle.net/g5rpcw2c/1/

1 个答案:

答案 0 :(得分:3)

您需要内联点击处理程序才能返回true:

http://jsfiddle.net/g5rpcw2c/2/

或者:

<input id="checkbox1" type="checkbox" data-bind="
    click: function () { handle_compare($element); return true; },
    checked: is_product_compared">

或(因为handle_compare已经返回true):

<input id="checkbox1" type="checkbox" data-bind="
    click: function () { return handle_compare($element) },
    checked: is_product_compared">