我可以从回调中获取 addEventListener() 注册的元素吗?

nib*_*ius 2 javascript dom addeventlistener dom-events

使用EventTarget.addEventListener()时,是否可以在调用回调时获取监听器注册到的元素?

我知道event.target属性,但这是触发事件的元素,它不必与注册侦听器的元素相同。

这是我的意思的一个例子。考虑以下 HTML:

<p id="1">paragraph <span>1</span></p>
<p id="2">paragraph <span>2</span></p>
Run Code Online (Sandbox Code Playgroud)

以及以下 JavaScript:

document.getElementById("1").addEventListener("click", myfun);
document.getElementById("2").addEventListener("click", myfun);

function myfun(ev) {
    ev.target.style.backgroundColor = "yellow";
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,我想将<p>单击的内容着色为黄色,但由于我使用的是 event.target,因此当单击 1 或 2 时,仅将其着色,而不是整个段落。

T.J*_*der 5

在 中myFunthis将是您挂钩侦听器的元素。这是运作方式的一个特点addEventListener