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

问题描述 投票:2回答:1

我正在使用Mootools并将click事件添加到链接。我已经为此添加了一个功能:

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

该函数包含此:

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

触发事件的功能(无实际点击)

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

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

javascript mootools mootools-events
1个回答
3
投票

因为您实际上不是在物理上触发某个动作,而是远程触发该动作。这是这样的。

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

尝试使用任何方法之前,请始终检查是否已定义event。或执行此操作:

link.fireEvent('click', {
    stop: function(){}
});
© www.soinside.com 2019 - 2024. All rights reserved.