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

时间:2013-12-20 11:48:25

标签: javascript dom javascript-events addeventlistener

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

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

Here's an example我的意思。请考虑以下HTML:

<p id="1">paragraph <span>1</span></p>
<p id="2">paragraph <span>2</span></p>

以下javascript:

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

function myfun(ev) {
    ev.target.style.backgroundColor = "yellow";
}

在这个例子中,我想为点击黄色的<p>着色,但由于我使用的是event.target,当点击1或2时,只有彩色而不是整个段落。

1 个答案:

答案 0 :(得分:4)

myFun内,this将是您挂接侦听器的元素。这是addEventListener如何运作的一个特征。