1

我有以下代码:

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

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

当我单击一个按钮时,该事件被 div 捕获。有没有办法获取事件的来源?

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

当点击被div捕获时,有没有办法定位到点击的来源?即点击了哪个实际按钮?

谢谢大家

戴夫

4

2 回答 2

5

您可以使用对象的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);
}
于 2013-04-24T14:04:34.820 回答
1

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

$("#buttons").click(function(evt){
       alert($(evt.target).attr("id"));
});
于 2013-04-24T14:11:18.327 回答