2016-12-02 57 views
0

我已经搜索网,并试图提到不同的方法,但点击功能有时火灾,有时没有。数据绑定上点击有多个参数的函数淘汰赛

这里是我的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;   
    }, 

大部分的时间上面的函数火灾的功能,但有时当我按一下按钮没有任何反应。 我也用绑定但也不至于检查的单选按钮。不确定是什么问题。我也在这里通过了很多链接在stackoverflow。也许我做了一些我不能指出的错误。 感谢您的帮助

+0

它似乎工作的小提琴。 https://jsfiddle.net/gqaLcapv/1/ click事件触发始终。 – Adrian

+0

嘿阿德里安,它大部分时间都在工作......即使我在小提琴中试过,它效果很好。由于 – user6000866

回答

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事件。

+0

我需要做点击约束力的,因为我在后台做了很多事情被点击的单选按钮时。我会尝试使用订阅的解决方案。谢谢 – user6000866