9

我收到这个 JS 错误:ReferenceError: event is not defined when I try to pass the event object to click binding when I use Firefox 23. 在 Chrome 下一切正常

这里的代码:

<!-- ko foreach: entries -->
   <tr data-bind="click: function(){ $parent.expandRow($data, event) }">
      ...
   </tr>
<!-- /ko -->


vm.entries.expandRow = function(entry, event){
    ...           
}
4

2 回答 2

14

这里来自github.com/knockout/knockout/issues/752的解决方案

<!-- ko foreach: entries -->
   <tr data-bind="click: function(data, event){ $parent.expandRow($data, event) }">
      ...
   </tr>
<!-- /ko -->

在 Firefox 下事件未在窗口对象上定义,而是需要传递给函数。

于 2013-08-14T01:06:55.737 回答
0

我知道这是一个相当古老的问题,但如果有人正在寻找答案,那么我通过以下方式实现了它:

<div id="this-element" data-bind="click : function(){ $root.clicked(event)}">

</div>

在页面的 ViewModel 中编写了以下代码(单击函数):

this.clicked= function (event) {
    console.log(event.currentTarget.id);
}

淘汰赛3.4.2

jQuery 3.2.1

于 2018-07-25T04:10:13.803 回答