数据绑定功能点击多个参数淘汰

时间:2016-12-02 09:02:00

标签: javascript jquery knockout.js

我搜索了网并尝试了不同的方法,但点击功能有时会触发,有时则不会。

这是我的HTML代码

                <input  type="radio"   data-bind="checked:a,checkedValue: 0, click: radio('dance','a')"  id="a_normal"  ><span class="OptionsTextProperties"> Normal </span>

                <input  type="radio"   data-bind="checked:a, checkedValue: 1 , click: radio('dance','a')"    id="a_abnormal" ><span class="OptionsTextProperties"> Abnormal </span>

这是我试图调用的函数

 radio : function(key,key1)
     {
        console.log(key,key1);
        return;          
     },

大多数情况下,上述功能会触发,但有时当我点击按钮时没有任何反应。 我还使用了 bind ,但是没有检查单选按钮。不确定是什么问题。我在stackoverflow上也经历了很多链接。也许我做错了,我无法指出。 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

如果要在radio('dance','a')数据绑定中使用它,

click必须返回一个函数。

更重要的是:您不应该在复选框上绑定click事件。您可以使用键盘检查复选框;你会想念那些。

使用淘汰赛时,subscribe最好是数据绑定值:

var vm = {
  checked: ko.observable(false)
};

vm.checked.subscribe(function onCheck() {
    console.log("Click!");
});

ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

<label>
  <input type="checkbox" data-bind="checked: checked">
  A checkbox
  </label>

如果你需要通过一个事件进行绑定,我建议改为使用change事件。