1
<button data-bind="click: myFunction.bind($data, 'param1')">
    Click me
</button>

このシナリオで $data とはどういう意味ですか?

しかし、クリックされた要素を取得したい

私のコード:

<a data-bind="click: shareSubmit.bind($data , 'test')" >Send</a>

shareSubmit = function(data){
console.log(data); ->>test
console.log(event) ???
}

shareSubmit 関数内の要素 ref/イベントを取得するにはどうすればよいですか??

4

1 に答える 1

0

$elemetバインディングで を使用して、クリックされた要素をハンドラーに明示的に渡すことができます。

<a data-bind="click: shareSubmit.bind($data , 'test', $element)" >Send</a>

そしてあなたのハンドラーで

shareSubmit = function(data, element){
     console.log(data); ///->>test
     console.log(element); // the clicked link
}

または、KO は自動的にイベント オブジェクトをハンドラーに渡すため、ビューは変更されません。

<a data-bind="click: shareSubmit.bind($data , 'test')" >Send</a>

ただし、ハンドラーでは、イベントを2番目の追加パラメーターとして取得します

shareSubmit:  function(customParamer, currentModel, element){
   console.log(customParamer); ///->>test
   console.log(currentModel); // the current view model
   console.log(element.target); // the clicked link
}

JSFIddleのデモ。

于 2013-11-14T07:25:00.307 に答える