JavaScript。有没有办法在事件处理程序内部检查哪个元素发送了事件?

标签 javascript events aframe

我正在使用一个基于实体组件的大型框架。所以我根本无法更改发送事件的元素的代码,我只能使用接收元素。

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/

相关文章:

Javascript - 触发特定的键盘键

aframe - 无法使用 Oculus Quest 2 在 A 型框架中移动摄像头

THREE.js 中的 CSS 到 GLTF 对象

javascript - 从 JavaScript 对象访问变量

javascript - 如何给函数添加延迟

javascript - 使用 javascript 或 jquery 展开/折叠父元素?

javascript - 使用 requireJS 和 jQuery 实现点击事件

c# - 当 ObservableCollection 中的属性更改时引发事件

javascript - 如何在 A 框架中按住多个带有 `keyboard-controls` 组件的按键

javascript - 如何在 AngularJS 中显示隐藏元素?