我正在使用一个基于实体组件的大型框架。所以我根本无法更改发送事件的元素的代码,我只能使用接收元素。
this.id 不起作用,因为组件(即事件处理程序)附加到发送事件的元素的父元素。
我正在使用 javascript,没有 jquery。
我想知道是否有办法找出接收元素的事件处理程序内部:哪个元素最初发送了事件?
我尝试浏览其他解决方案,例如
function doWithThisElement(event) {
event = event || window.event; // IE
var target = event.target || event.srcElement; // IE
var id = target.id;
//...
}
但这对我不起作用。
最佳答案
您必须使用 event.target
属性才能返回触发和发起事件的 DOM 元素。
$('div').click(function(event){
console.log(event.target.id);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div1">div1</div>
<div id="div2">div2</div>
<div id="div3">div3</div>
关于JavaScript。有没有办法在事件处理程序内部检查哪个元素发送了事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41781940/