0

コードがあります ( http://learn.knockoutjs.com/#/?tutorial=introで再生できます。再生する前に、出力ウィンドウで [実行] をクリックします):

HTML:

<div class="btn" style="margin-left: 15px;" data-bind="click: includeMyNumber">
   <input data-bind="checked: isIncludeMyNumber" data-val="true" id="IncludeMe" name="IncludeMe" style="margin: 0" type="checkbox" value="true" />&nbsp;
   Include my number (+<span>11111111111</span>) 
</div>

Javascript:

 // This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI
function AppViewModel() {

    this.isIncludeMyNumber = ko.observable(false);

    this.includeMyNumber = function(){
       this.isIncludeMyNumber(!this.isIncludeMyNumber());
    }
}

// Activates knockout.js
ko.applyBindings(new AppViewModel());

問題は、チェックボックスのクリック イベント処理が正しく機能しないことです。[div class="btn"...] ...[/div] 領域内のスペースをクリックすると、チェックボックスの動作は問題ありませんが、チェックボックス自体をクリックすると、チェックされません。どのような場合でもチェック可能にするにはどうすればよいですか?

ありがとうございました。

4

1 に答える 1

1

テキストをクリックしたときにチェックボックスをオンにするのがユースケースですか?

カスタムバインディングコレクションでこれのバインディングを作成しました

https://github.com/AndersMalmgren/Knockout.Bindings

http://jsfiddle.net/5nqw4/

<input data-bind="checked: checked, label: { caption: 'Label with reference to input' }" type="checkbox" />

編集: http://jsfiddle.net/7dTfM/のようなラベル要素でチェックボックスをラップする標準的なハックを使用して、これを修正することもできます

于 2012-12-03T13:11:15.913 に答える