2016-12-02 4 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/ クリックイベントは常に発生します。 – Adrian

+0

ちょっとエイドリアン、ほとんどの時間は働いています...でも、私はそれをフィドルで試してもうまくいきます。ありがとう – user6000866

答えて

0

radio('dance','a')は、clickデータバインドで使用する場合は関数を返さなければなりません。

さらに重要:チェックボックスのclickイベントにバインドしないでください。キーボードを使用してチェックボックスをチェックすることができます。あなたはそれらを逃すでしょう。あなたは必要がイベントを経由してバインドする場合

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を使用することをお勧めしたい:ノックアウトで

は、それがデータバインド値にsubscribe方が良いでしょう代わりにイベント。

+0

私はラジオボタンがクリックされたときに私がバックエンドで多くのことをしているので、クリックでバインディングを行う必要があります。私は購読を使用してのソリューションを試してみます。ありがとうございました – user6000866

関連する問題