单击绑定备用语法

时间:2013-11-14 07:12:18

标签: knockout.js

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

这个场景中的$ data意味着什么,这是在文档中找到的,并且在我的代码中,但是当我执行console.log(data)时显示param1

但我希望得到点击它的元素

我的代码:

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

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

我如何在shareSubmit函数中获取元素ref / event?

1 个答案:

答案 0 :(得分: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>

但是在你的处理程序中,你将事件作为第二个附加参数

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

演示JSFIddle