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

Javascript 将事件对象传递给knockout.js函数,javascript,knockout.js,knockout-3.2,Javascript,Knockout.js,Knockout 3.2,我正在使用bind调用视图中带有参数的函数: <span data-bind="click: modifyByOne.bind($data, 'plus')"></span> 在Chrome中,一切正常,但在Firefox中,我遇到以下控制台错误: 未定义事件 我怎样才能让它也在Firefox中工作呢? 敲除文档对此没有提供太多答案。您没有在函数签名中声明事件参数。但除此之外,如果您需要在Knockout中访问实际的DOM元素,则应该使用自定义绑定处理程序;您不应该从视

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

<span data-bind="click: modifyByOne.bind($data, 'plus')"></span>
在Chrome中,一切正常,但在Firefox中,我遇到以下控制台错误:

未定义事件

我怎样才能让它也在Firefox中工作呢?
敲除文档对此没有提供太多答案。

您没有在函数签名中声明
事件
参数。但除此之外,如果您需要在Knockout中访问实际的DOM元素,则应该使用自定义绑定处理程序;您不应该从视图模型内部访问DOM。

您不应该在函数签名中声明
事件
参数。但除此之外,如果您需要在Knockout中访问实际的DOM元素,则应该使用自定义绑定处理程序;您不应该从视图模型内部访问DOM。

敲除单击绑定将两个参数传递给侦听器方法:当前绑定上下文(
$data
)和事件

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

self.modifyByOne = function(type, data, event){
  var span = $(event.target);
};

虽然这应该行得通,但从代码中使用DOM被认为是不好的做法

敲除单击绑定将两个参数传递给侦听器方法:当前绑定上下文(
$data
)和事件

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

self.modifyByOne = function(type, data, event){
  var span = $(event.target);
};

虽然这应该行得通,但从代码中使用DOM被认为是不好的做法

您问题中的代码使用了一个名为
event
的变量(?),但不清楚它来自何处。您问题中的代码使用了一个名为
event
的变量(?),但不清楚它来自何处。很好的解释!谢谢很好的解释!谢谢