Event parameter not defined for Knockout click binding using Firefox

情到浓时终转凉″ 提交于 2019-12-04 19:29:14

问题


I am getting this JS error: ReferenceError: event is not defined when I try to pass the event object to click binding when I use Firefox 23. Everything works fine under Chrome

Here the code:

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


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

回答1:


Here the solution from github.com/knockout/knockout/issues/752

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

Under Firefox event is not defined on the window object, instead it needs to be passed to the function.




回答2:


I know that this is a pretty old question, but still if someone is looking for the answer then I achieved it in the following way:

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

</div>

Following code (clicked function) is written in the ViewModel for the page:

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

Knockout 3.4.2

jQuery 3.2.1



来源:https://stackoverflow.com/questions/18221569/event-parameter-not-defined-for-knockout-click-binding-using-firefox

工具导航Map