我已经为我的html机构分配了一个onmouseover事件。但是,当鼠标进入身体时,我只希望它发射一次。
相反,只要我将鼠标移动到身体中,它就会反复射击,即使鼠标从未离开过身体。有没有办法防止这些失火?
由于
答案 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>