select 函数上的 Knockout 访问更改事件

Knockout Access change event on select function

我正在尝试将事件传递给 select 上的函数。

这是来自淘汰赛的文件:

<div data-bind="event: { mouseover: function(data, event) { myFunction('param1', 'param2', data, event) } }">
    Mouse over me
</div> 

我试过这样的:

<select name="ans" data-bind="options: $root.Answers,optionsValue: 'Answer',value: Answer(),event:{change: function(event){ $root.selectAnswer($data,$index,$element.name,event)}}"></select>

函数

self.selectAnswer = function (data,index,type,event)
{     
     if (event.originalEvent)
     {
      ...
     }
}

我面临的问题是我得到的事件实际上是 $data 而不是事件。

有道理,对吧。比较您引用的文档:

mouseover: function(data, event) { myFunction

你的版本:

event: { change: function(event) { $root.se

处理程序的第一个参数将接收 $data,它进入您的 event 命名参数。您应该将版本更改为:

event: { change: function(data, event) { $root.se

event 实际上将包含 event