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

Kri*_*ian 3 javascript mootools mootools-events

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

$('addCallRoute').addEvent('click', addCallRoute); // Add button
Run Code Online (Sandbox Code Playgroud)

该函数包含以下内容:

function addCallRoute(e) {
    console.log(e);
}
Run Code Online (Sandbox Code Playgroud)

触发事件的函数(无需实际点击)

$('addCallRoute').fireEvent('click');
Run Code Online (Sandbox Code Playgroud)

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

Osk*_*zyk 5

因为你实际上并没有物理地触发一个动作,而是远程触发它。这就是它的工作原理。

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

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

link.fireEvent('click', {
    stop: function(){}
});
Run Code Online (Sandbox Code Playgroud)