当点击一个按钮时,我想在现代浏览器如 Firefox
, Chrome
, 中获取事件对象
。
问题是当点击按钮时给我一个 e
等undefined
事件对象,注意当在 internet explorer
浏览器中使用 window.event
获取事件对象。
// the Object
var countdown = {
hours: 0,
minutes: 0,
seconds: 0,
element_h: null,
element_m: null,
element_s: null,
init: function (hElemId, mElemId, sElemId) {
this.element_h = document.getElementById(hElemId);
this.element_m = document.getElementById(mElemId);
this.element_s = document.getElementById(sElemId);
},
play: function (e){
alert(e.target);
}
};
HTML:
<button onclick="countdown.play();">Play</button>
最佳答案
您必须像这样显式地将 event
对象传递给 onclick 处理程序
<button onclick="countdown.play(event);">Play</button>
引用 MDN's Event Registration Doc page ,
The JavaScript code in the attribute is passed the Event object via the event parameter.
当您内联注册事件处理程序时,可以为它提供带有 event
参数的 Event
对象。但这不会自动完成。这就是为什么我们必须显式传递 event
对象。由于您没有传递它,e
默认为 undefined
。
关于javascript - 为什么事件对象在我的例子中是未定义的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27465788/