为什么在手动触发事件时回调中的事件e未定义?

时间:2012-09-24 20:14:31

标签: javascript javascript-events mootools

我正在使用 Mootools 并向链接添加点击事件。我已经为此事件添加了一个函数:

$('addCallRoute').addEvent('click', addCallRoute); // Add button

该功能包含:

function addCallRoute(e) {
    console.log(e);
}

触发事件的函数(没有实际点击)

$('addCallRoute').fireEvent('click');

问题: 当我实际点击链接时,会定义e。但是当我以编程方式触发事件时,eundefined。为什么呢?

1 个答案:

答案 0 :(得分:3)

因为您实际上并未实际触发某个操作但是远程触发它。这是它的工作原理。

event通常包含有关触发操作的元素的所有信息。

在尝试使用任何方法之前,请务必检查是否已定义event。或者这样做:

link.fireEvent('click', {
    stop: function(){}
});