当快速移动鼠标时,jQuery鼠标悬停事件会多次触发

Sal*_*h K 0 ajax wordpress jquery

我正在使用jquery mouseover事件在wordpress中使用ajax获取一些数据,ajax工作正常,但我的问题是当我们将鼠标移到元素上时,更快的事件会触发多个动作,即如果我移动鼠标时会发出警报反复越过元素,我会得到多个警报,我不想要这个,我尝试解除绑定,但不能正常工作.这里是

<ul class="tab-content">
<li><div class="place-holder"></div></li>
<li><div class="place-holder"></div></li>
<li><div class="place-holder"></div></li>
<li><div class="place-holder"></div></li>
</ul>


$(document).on('mouseover', '.place-holder' , function(e){
alert ('hallo');
}
Run Code Online (Sandbox Code Playgroud)

Kar*_*non 5

一种解决方案是使用计时器延迟操作.就像:

var timer;
$(document).on('mouseover', '.place-holder' , function(e){
    clearTimeout(timer)
    timer = setTimeout(function(){
        alert('Hallo');
    }, 200)
})
Run Code Online (Sandbox Code Playgroud)

这样,您的事件将在鼠标悬停后触发0.2秒,如果您快速移动,则仅触发一次.