本帖最后由 buqibushe 于 2011-03-12 10:03:49 编辑

解决方案 »

  1.   

    把 $(this) 改成全局变量
      

  2.   

    楼主试试
    http://jsfiddle.net/68KmU/
      

  3.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
      <script type="text/javascript" src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script>
      <script type="text/javascript">
       var left_most = -145;
        var right_most = 10;
        var the_timeout = null;
    $(function(){
    $('#slider_menu').mouseover(function(){ // to right
    clearTimeout(the_timeout);
    the_timeout = setTimeout("slideToRight();", 1);
    }).mouseout(function(){// to left
    clearTimeout(the_timeout);
    the_timeout = setTimeout("slideToLeft();", 50);  //5s后开始往左移
    });
    }) function slideToRight()
        {
    //alert(1)
    $("#a").html($('#slider_menu').css("left")+"a");
            var left_pos = parseInt($('#slider_menu').css("left"));    
            //alert(left_pos);    
            if (left_pos > right_most) {
                clearTimeout(the_timeout);
                return;
            } else {
                left_pos += 1;// 坐标加5px
                left_pos += 'px';
                //alert(left_pos); 
                $('#slider_menu').css("left", left_pos);
                the_timeout = setTimeout("slideToRight();", 1);//调用本身,继续移动,直到right_most
            } 
        }
        
        function slideToLeft()
        {
    //alert(2)
    $("#b").html($('#slider_menu').css("left")+"b");
            var left_pos = parseInt($('#slider_menu').css("left"));    
            //alert(left_pos);    
            if (left_pos < left_most) {
                clearTimeout(the_timeout);
                return 0;
            } else {
                left_pos -= 5; // 坐标减5px
                left_pos += 'px';
                //alert(left_pos); 
                $('#slider_menu').css("left", left_pos);
                the_timeout = setTimeout("slideToLeft();", 1);//调用本身,继续移动,直到left_most        }
        }
      </script>
     </HEAD> <BODY>
     <div id="a"></div>
      <div id="b"></div>
      <div id="slider_menu" style="position:absolute;left:0;width:200;height:200;background-color:blue"></div>
      
     </BODY>
    </HTML>