3

ここでは、クリックされた項目の値を関数に渡したい非常に基本的な例でノックアウトを使用します。うまくいかないことを試しました。誰かが先に進む方法を教えてくれますか? 多分私は間違った方法をやっていますか?

ご協力いただきありがとうございます。

<div class='liveExample'>   
    <h2 data-bind="value: 'A', click: myFunction">Aaaaa</h2>  
    <h2 data-bind="value: 'B', click: myFunction">Bbbbb</h2>
    <h2 data-bind="value: 'C', click: myFunction">Ccccc</h2>
</div>

// Here's my data model
var ViewModel = function() {

    this.myFunction = function (elm)
    {
        alert('you clicked: ' + elm);
    }
};

ko.applyBindings(new ViewModel()); // This makes Knockout get to work

jsFiddle はこちら: http://jsfiddle.net/LkqTU/10229/

PS: できることはわかってい...click: function () { myFunction('A'); }">ますが、もっと良い方法があると思います。

4

3 に答える 3

1

イベント ターゲット (h2要素)から値を取得できます。

// Here's my data model
var ViewModel = function() {

    this.myFunction = function (data, event)
    {
        debugger;
        alert('you clicked: ' + event.target.value);
    }
};

ko.applyBindings(new ViewModel());

クリックバインディングの詳細を読む

于 2013-07-07T09:32:03.337 に答える
1

試す:

this.myFunction = function (vm, event)
    {
        alert('you clicked: ' + event.srcElement);
    }
于 2013-07-07T09:32:25.357 に答える
0
this.myFunction = function (val1, val2)
{
    ...;
}

バインディングでは、次を設定する必要があります。

<h2 data-bind="value: 'C', click: myFunction.bind($data, 'A', 'B')">Ccccc</h2>

これはあなたを助ける必要があります。このメソッドでは、任意の数の値を渡すことができます。

于 2013-07-07T09:35:00.603 に答える