// this e works
document.getElementById("p").oncontextmenu = function(e) {
e = e || window.event;
var target = e.target || e.srcElement;
console.log(target);
};
// this e is undefined
function doSomething(e) {
e = e || window.event;
var target = e.target || e.srcElement;
console.log(target);
}
<p id="p" onclick="doSomething(e)">
<a href="#">foo</a>
<span>bar</span>
</p>
也有人提出过类似的问题。
但是在我的代码中,我试图获取被单击的子元素,例如a
或span
。
那么event
作为参数传递给事件处理程序的正确方法是什么,或者如何在处理程序内部获取事件而不传递参数呢?
编辑
我知道addEventListener
和jQuery
,请提供将事件传递给inline
事件处理程序的解决方案。
developer.mozilla.org/en/docs/DOM/EventTarget.addEventListener
—
保罗S.
使用内联事件处理程序而不是切换到addEventListener是否有充分的理由?en.wikipedia.org/wiki/Unobtrusive_JavaScript
—
Xotic750
@ Xotic750对我来说,例如,当通过ajax动态加载或重新加载html时,无需每次手动重新绑定它们。
—
Wadih M.