1
<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/事件?

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>

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

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 回答