在事件冒泡中查找单击的来源

时间:2013-04-24 14:00:46

标签: javascript event-bubbling

我有以下代码:

<div id="buttons">
    <button id="btn1">1</button>
    <button id="btn2">2</button>
</div>

我将一个事件处理程序附加到<div>以处理点击。

单击按钮时,div会捕获该事件。有没有办法获得事件的来源?

例如,如果事件位于每个按钮上,则this关键字将引用按钮。当它在<div>上时,它指的是那个。

当div抓住点击时,有没有办法找到点击源?即点击了哪个实际按钮?

全部谢谢

戴夫

2 个答案:

答案 0 :(得分:4)

您可以使用originalTarget对象的event属性来查找事件的来源。

JSFiddle

HTML

<div id="buttons">
    <button id="btn1">1</button>
    <button id="btn2">2</button>
</div>

的JavaScript

document.getElementById('buttons').onclick = function (evt) {
    var source = evt.srcElement || evt.originalTarget
    alert(source.id);
}

答案 1 :(得分:1)

如果您使用jQuery,这应该会有所帮助:

$("#buttons").click(function(evt){
       alert($(evt.target).attr("id"));
});