我有一个jquery悬停事件,当您将鼠标悬停在元素上时会触发该事件。麻烦的是,如果你将元素悬停在元素上多次,它会使事件排队,有时会让元素闪烁,几分钟取决于你悬停和悬停元素的速度和持续时间。我想停止事件的传播,以便排除这种排队。
$('.pui-search-item').hover( function() {
$(this).find('.pui-actions').show('fade');
}, function(){
$(this).find('.pui-actions').hide('fade');
});
我如何解决这个问题,我尝试了各种传播功能而没有效果。
提前致谢。
答案 0 :(得分:7)
试试这个:
$('.pui-search-item').hover( function() {
$(this).find('.pui-actions').stop(true, true).show('fade');
}, function(){
$(this).find('.pui-actions').stop(true, true).hide('fade');
});
以下是有关stop()http://api.jquery.com/stop/
的更多信息答案 1 :(得分:3)
在动画之前添加stop(true)
函数调用,以便重置队列。
答案 2 :(得分:1)
尝试this链接。
您的实施应更改为:
$('.pui-search-item').hover(function() {
$(this).find('.pui-actions').stop(true, true).fadeOut();
}, function() {
$(this).find('.pui-actions').stop(true, true).fadeIn();
});