Jquery下拉列表删除后删除类

我有一个下拉列表的代码,我需要在菜单向上滑动后删除“#products”上的“hovered”类并消失。 我该怎么做呢? 目前,它会立刻消失

感谢您解决此问题的任何帮助! 🙂

$(function() { var divTop = 168; $('#products div ul').css({'margin-top': '-' + divTop + 'px','float':'left'}); $('#products > a,#products div').hover(function(){ $('#products').addClass('hovered'); $('#products div ul').show().stop().animate({'margin-top': '0'}); },function(){ $('#products').removeClass('hovered'); $('#products div ul').show().stop().animate({'margin-top': '-' + divTop + 'px'}); }); }); 

你可以在.animate()回调中调用.removeClass() ,如下所示:

 $(function() { var divTop = 168; $('#products div ul').css({'margin-top': '-' + divTop + 'px','float':'left'}); $('#products > a,#products div').hover(function(){ $('#products').addClass('hovered'); $('#products div ul').show().stop().animate({'margin-top': '0'}); },function(){ $('#products div ul').show().stop().animate({'margin-top': '-' + divTop + 'px'}, function() { $('#products').removeClass('hovered'); }); }); }); 

你可以放

 function(){ $('#products').removeClass('hovered'); } 

作为animate()函数的回调

如果我理解你,你似乎只需要使用.animate()的回调函数(REF: http ://api.jquery.com/animate/)。

 $(function() { var divTop = 168; $('#products div ul').css({'margin-top': '-' + divTop + 'px','float':'left'}); $('#products > a,#products div').hover(function(){ $('#products').addClass('hovered'); $('#products div ul').show().stop().animate({'margin-top': '0'}); },function(){ $('#products div ul').show().stop().animate({'margin-top': '-' + divTop + 'px'}, function(){ $('#products').removeClass('hovered'); }); }); });