简单问题的jQuery帮助

时间:2011-05-08 01:24:41

标签: jquery

我写了一个自定义下拉菜单,问题是,如果你将鼠标悬停在快速上,它会疯狂地开始上下移动。以下是一个示例:http://www.norrispenrose.com/

这是我的jQuery代码:

jQuery(document).ready(function(){ // menu system
      jQuery('#mainMenu li').hover(function() {
              jQuery(this).corner('5px');
          });

      jQuery('#mainMenu li').hover(function() {
         if(jQuery(this).children().is('ul'))
          {
              jQuery(this).uncorner();
              jQuery(this).corner('top 5px');
              jQuery('ul', this).slideDown('fast');
              jQuery('ul', this).uncorner();
              jQuery('ul', this).corner('tr br bl 5px');
              jQuery(this).addClass('dropHover');
          }
          else
          {
      //Do nothing
      }

      }, function() {
          jQuery('ul', this).slideUp('fast');
          jQuery(this).delay(200).queue(function () {
              jQuery(this).removeClass('dropHover');
              jQuery(this).dequeue();
          });
          jQuery(this).uncorner();

      }); 
  });

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

slideUpslideDown使用jQuery stop()方法(docs)清除动画队列之前。例如,从您的代码:

jQuery('ul', this).stop(true, true).slideDown('fast');

答案 1 :(得分:0)

查看HoverIntent plug-in。这应该可以解决你的问题。