没有为使用Firefox的Knockout点击绑定定义事件参数

时间:2013-08-14 00:55:37

标签: javascript events firefox knockout.js click

我收到此JS错误: ReferenceError:事件未定义当我尝试将事件对象传递给使用Firefox 23时单击绑定时。一切正常在Chrome下

这里是代码:

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


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

2 个答案:

答案 0 :(得分:14)

来自github.com/knockout/knockout/issues/752

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

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

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