// 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>
还有一些类似的问题已被问到。如何将事件作为参数传递给JavaScript中的内联事件处理程序?
但在我的代码中,我试图找到被点击的子元素,如a
或span
。
那么,什么是,或如何得到内部处理事件,而不传递一个参数传递event
作为参数传递给事件处理程序的正确方法是什么?
编辑
我所知道的addEventListener
和jQuery
,请提供传递事件inline
事件处理的解决方案。
https://developer.mozilla.org/en/docs/DOM/EventTarget.addEventListener – 2013-05-06 17:54:54
是否有充分的理由使用内联事件处理程序而不是切换到addEventListener? http://en.wikipedia.org/wiki/Unobtrusive_JavaScript – Xotic750 2013-05-06 17:56:17