如何将事件作为参数传递给JavaScript中的内联事件处理程序?

// 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>

也有人提出过类似的问题。

但是在我的代码中, 。

那么event作为参数传递给事件处理程序的正确方法是什么,或者如何在处理程序内部获取事件而不传递参数呢?

编辑

我知道addEventListenerjQuery,请提供将事件传递给inline事件处理程序的解决方案。

回答:

传递event对象:

<p id="p" onclick="doSomething(event)">

获取被点击的孩子element(应与event参数一起使用:

function doSomething(e) {

e = e || window.event;

var target = e.target || e.srcElement;

console.log(target);

}

传递element自身(DOMElement):

<p id="p" onclick="doThing(this)">

以上是 如何将事件作为参数传递给JavaScript中的内联事件处理程序? 的全部内容, 来源链接: utcz.com/qa/405489.html

回到顶部