将事件对象传递给knockout.js函数

Alv*_*aro 1 javascript knockout.js knockout-3.2

我正在使用bind我的视图中的参数调用该函数:

<span data-bind="click: modifyByOne.bind($data, 'plus')"></span>
Run Code Online (Sandbox Code Playgroud)

根据这个答案event通过这样做获得对象:

self.modifyByOne = function(type){
    var span = $(event.currentTarget);
};
Run Code Online (Sandbox Code Playgroud)

在Chrome中一切正常,但在Firefox中我收到以下控制台错误:

事件未定义

我怎样才能让它在Firefox中运行?淘汰文档没有提供太多答案.

use*_*291 5

knockout click绑定将两个参数传递给listener方法:当前绑定context($data)和事件.

通过使用bind,您可以像指定的那样指定要传递给方法的其他参数.这些参数在两个默认参数之前传递.因此,您的方法应接受类型,数据事件参数.

self.modifyByOne = function(type, data, event){
  var span = $(event.target);
};
Run Code Online (Sandbox Code Playgroud)

虽然这应该有用,但从代码中使用DOM来处理这些东西被认为是不好的做法.请尝试创建自定义绑定.