我收到此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){
...
}
答案 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