我有这个问题。我有滑动菜单(3个级别),当我用鼠标快速交叉菜单时,它会上下滑动几次。我知道jQuery函数.stop()修复了这个,但我不知道如何使用它。
我有这个jquery代码:
$(document).ready(function(){
$('menu li').hover(function() {
$(this).find('ul.menu2').slideDown().end().find('a.prvy').css('backgroundPosition','bottom center');
var width = $(this).find('ul.menu2').css("width");
$(this).find('ul.menu2 li ul.menu3').css("left",width);
$(this).find('ul.menu2>li').hover(function() {
$(this).find('ul.menu3')).fadeIn().end().find('div.text').addClass('activ');
}, function() {
$(this).find('ul.menu3').fadeOut().end().find('div.text').removeClass('activ');
});
}, function() {
$(this).find('ul.menu2').slideUp(300).end().find('a.prvy').css('backgroundPosition','top center');
});
});
我尝试了一些想法:
$('menu li').stop(false,true).hover(function() {
OR
$('menu li').stop(true,true).hover(function() {
但它不起作用。
感谢您的回答,对不起我的英语。
答案 0 :(得分:1)
您需要在悬停功能中调用stop。
$(document).ready(function(){
$('menu li').hover(function() {
$(this).find('ul.menu2').stop(...
}, function() {
$(this).find('ul.menu2').stop(...
});
});
根据@ tfbox的其他评论进行更新:
由于您使用stop
和true, true
,因此您需要使用fadeIn
致电fadeOut
。如果你不想跳到最后那么你就不能使用这些,而应该使用fadeTo
。