在javascript中,我是否可以返回悬停在任何DOM元素上的元素?
例如,如果我有一个像这样的 HTML 片段:
<body>
<div>
<span>I'm a title!</span>
</div>
<div>I'm the first element!</div>
<div>I'm the first element!</div>
<body>
显然,如果我想获得一个特定的元素,比如 id 为 1 的 div,我可以做类似的事情
document.getElementById("1").addEventListener("mouseover", () => console.log("in div 1!"), false);
in div 1!每当我悬停在它上面时就会输出。但是是否有一些 javascript 可以应用于 .js 中的每个元素body?基本上编写一些函数,例如,getElementUserIsHoveringOver()?
我不认为addEventListener对 有效HTMLCollections,这是我唯一的想法。
回答
mouseover气泡,因此如果将侦听器附加到<body>,则可以监视事件并记录event.target:
document.body.addEventListener('mouseover', (e) => {
console.log(e.target);
});
<div>
<span>I'm a title!</span>
</div>
<div>I'm the first element!</div>
<div>I'm the second element!</div>