繁体   English   中英

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

[英]Passing the event object to knockout.js function

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

<span data-bind="click: modifyByOne.bind($data, 'plus')"></span>

按照这个答案,我通过执行以下操作获取event对象:

self.modifyByOne = function(type){
    var span = $(event.currentTarget);
};

在Chrome中,一切正常,但在Firefox中,出现以下控制台错误:

未定义事件

我如何也可以在Firefox中使用它? 淘汰赛文档并未对此提供太多答案。

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

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

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

尽管这行得通,但对代码中的DOM进行处理被认为是不好的做法。 尝试创建自定义绑定

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM