【发布时间】:2013-10-30 18:10:26
【问题描述】:
我已经为我的问题寻找了很多答案,但还没有找到类似的东西。本质上,我想调用一个接受事件的函数,通常会通过单击或其他事件附加到元素,但直接调用它。
本质上,我知道我可以这样做来调用我的函数(用 jQuery 编写):
function updateThisValue(event) {
...some code...
}
jQuery('#myElement').on('click', updateThisValue);
jQuery('#myElement').trigger('click');
有没有办法直接调用函数?
function updateThisValue(event) {
...some code...
}
updateThisValue(***jQuery event object here***);
对于上下文,我正在使用 Backbone 更新网页上的表单,并定义了一个自定义视图,该视图被定义为在特定事件上调用其方法之一 (updateThisValue)。在同一视图的不同方法中,我希望能够直接调用“updateThisValue”方法。但是,“updateThisValue”在其代码中使用事件对象。因此,如果我直接调用该方法,它会失败并出现错误。
有没有办法做到这一点?还是我只需要按照我的第一个 I-know-I-can-do-it-this-way 示例手动(通过代码)触发事情?只是感觉像个黑客,仅此而已。
谢谢。
【问题讨论】:
-
您需要事件对象的哪一部分?也许你可以使用类似
updateThisValue({target: <DOMNode>}) -
updateThisValue 会对事件对象做什么?由于 Javascript 是一种动态语言,您可以传递任何对象,只要它“看起来”像一个 jQuery 事件对象,关于所访问的属性和函数。 (en.wikipedia.org/wiki/Duck_typing)
标签: javascript function events backbone.js