我在做一网站的下拉菜单,我想在鼠标无意的滑过(即在该标签上面停留的时间少于3毫秒)时,并不显示子菜单。我想到的是用setTimeout来实现,但是过了3毫秒后它又会显示出来了。JQuery代码如下:
  
   $("#content02 ul li dl dt").hover(
     function(){
 var fHover=$(this);
 var timeId= setTimeout(function(){
 $("#content02 ul li dl dt a").not("#default").removeClass("hover");
 $("#content02 ul li dl.ddList dd").css("display","none");
 fHover.children("a").addClass("hover");
 fHover.parent().parent().find("dl.ddList dd").css("display","block");},300)
   }
  );
  
 请教下,这有这么解决方法?

解决方案 »

  1.   

    先$("#content02 ul li dl dt").onmousuemove(function(){
           var timeId= setTimeout(abc(),3000);
    });再$(function abc(){
           你要的代码
    });就这样。。不知道你的是怎么出错的
      

  2.   

    mousueover :  t= setTimeout(function(){/** 你的逻辑 */},3000);
    mouseout : clearTimeout(t)
      

  3.   

    mousueover: timeId= setTimeout(function(){/** 你的逻辑代码 */},3000);
    mouseout  : clearTimeout(timeId);
      

  4.   

    我的目的不是延时执行,而是当鼠标在主标签上停留的时间少于3毫秒时不显示子菜单,用setTimeout的话是3毫秒后显示子菜单,这不是我想要的。