将事件对象传递给 KNOCKOUT.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中,我收到以下控制台错误:
未定义事件
我怎样才能让它在火狐中也能工作?淘汰文档对此没有提供太多答案。
挖空单击绑定将两个参数传递给侦听器方法:当前绑定上下文 ( $data
) 和事件。
通过使用 binbing,您可以像以前一样指定要传递给方法的其他参数。这些参数在两个默认参数之前传递。因此,您的方法应接受类型、数据和事件参数。
self.modifyByOne = function(type, data, event){
var span = $(event.target);
};
虽然这应该有效,但从代码中使用 DOM 做一些事情被认为是不好的做法。请尝试改为创建自定义绑定。
> 不要在函数签名中声明 event
参数。但除此之外,如果您需要访问 Knockout 中的实际 DOM 元素,您应该使用自定义绑定处理程序;您不应该从视图模型内部访问 DOM。
相关文章:
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- 如何将Knockout.JS与服务器已经在DOM中呈现的数据同步
- Knockout.JS标签在foreach内部不起作用
- 使用Knockout JS从下拉框中向observalearray添加项
- 使用knockout.js将数组绑定到视图模型
- 如何使用Jasmine测试Knockout.js点击绑定
- 类似于Prism的Knockout js框架
- Knockout JS和简单的函数
- Knockout.js中带有if:子句的嵌套循环
- Knockout JS中具有下拉列表的数组
- Knockout.JS,模板都是通过表单不添加数据的
- 在Knockout JS中搜索从DB加载数据的项目
- 使用Knockout.js动态更改facebook数据
- $root在knockout.js中解析为空白页
- knockout.js中的绑定多下拉列表
- 在Knockout js中创建一个包含多行的表,而不需要推送
- 如何基于Knockout js模型设计控件样式
- 从对象内部调用knockout.js ko.applyBindings()
- 在Knockout.js模型中创建项之间的关系
- 复选框列表在Knockout JS中不起作用