我的HTML:
<div id="x" onclick="clickHandler(event)">
   <div id="button1">This turns green</div>
   <div id="button2">This turns blue</div>
</div>那么,首先,为什么我应该将" event“传递给click处理程序,而event是某种系统关键字吗?另外,由于单击处理程序是在容器div上标识的,我如何知道哪个按钮被单击了?
发布于 2011-10-21 15:29:52
event是一个事件对象,它是在触发事件时自动创建的。请注意,您不必将其称为event (我倾向于简单地将其称为e)。该事件对象具有许多属性,这些属性描述了它所表示的事件。在本例中,您感兴趣的是target,它显示了作为事件源的元素:
function clickHandler(e) {
    var target = e.target;
}这是一个working example。
不幸的是,事情从来没有那么简单。虽然规范说它应该是event.target,但Internet Explorer喜欢不同,并选择使用event.srcElement,所以您可能想要检查一下,以确保event.target存在!例如:
function clickHandler(e) {
    var target = (e.target) ? e.target : e.srcElement;
}https://stackoverflow.com/questions/7846268
复制相似问题