如何防止onmouseover像onmousemove一样?

时间:2015-08-27 01:09:40

标签: javascript onmouseover

我已经为我的html机构分配了一个onmouseover事件。但是,当鼠标进入身体时,我只希望它发射一次。

相反,只要我将鼠标移动到身体中,它就会反复射击,即使鼠标从未离开过身体。

有没有办法防止这些失火?

由于

1 个答案:

答案 0 :(得分:5)

您需要使用事件mouseenter而非mouseover,当您从元素移动到元素时,将会触发该事件。

  

当指点设备(通常是鼠标)时会触发mouseenter事件   被移动到附加了侦听器的元素上。

     

mouseover类似,它的不同之处在于它不会起泡和它   当指针从其后代之一移动时,不会发送   物理空间到自己的物理空间。

document.body.addEventListener('mouseenter', function() {
  snippet.log('mouse entered')
});
document.body.addEventListener('mouseover', function() {
  snippet.log('mouse over')
});
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

<div>Soem content <span>within span</span> <button>Button</button></div>