<span id="">
<input type="text" name="name1" onmouseover="mouseover_div()" onmouseout="mouseout_idv()">
<div id="divs">
  <ul>
    <li>测试</li>
    <li>测试</li>
  </ul>
</div>
</span>
<script>
function mouoseover_div()
{
  m=setTimeout("document.getElementById('divs').display='block'",1000);
}
function mouseout_div()
{
    clearTimeout(m);
    setTimeout("document.getElementById('divs').display='none'",1000);
}
</script>
但是发现清除计时器米有管用。求高手指点代码哪里出了问题。

解决方案 »

  1.   

    m定义在函数外:<script>
    var m;
    function mouoseover_div()
    {
      m=setTimeout("document.getElementById('divs').display='block'",1000);
    }
    function mouseout_div()
    {
      clearTimeout(m);
      setTimeout("document.getElementById('divs').display='none'",1000);
    }
    </script>
      

  2.   


    <script>
    function mouoseover_div()
    {
      m=setTimeout("document.getElementById('divs').style.display='block'",1000);
    }
    function mouseout_div()
    {
      clearTimeout(m);
      setTimeout("document.getElementById('divs').style.display='none'",1000);
    }
    </script>
      

  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>
      var m;
    function mouseover_div()
    {
      m=setTimeout("document.getElementById('divs').style.display='block'",1000);
    }
    function mouseout_div()
    {
      clearTimeout(m);
      m=setTimeout("document.getElementById('divs').style.display='none'",1000);
    }
    </script> </HEAD> <BODY>
      <span id="">
    <input type="text" name="name1" onmouseover="mouseover_div()" onmouseout="mouseout_div()">
    <div id="divs">
      <ul>
      <li>测试</li>
      <li>测试</li>
      </ul>
    </div>
    </span>
     </BODY>
    </HTML>
    function mouseover_div()  function mouseout_div()
    函数名和你下面引用的不一致!
      

  4.   

    你的m没有定义成全局变量 
    你的写法错误在于:两个函数中的m的作用域是私有的 两个m不可作为一个m来使用 必能彼此互相使用
      

  5.   

    var m;
    function mouoseover_div()
    {
      m=setTimeout("document.getElementById('divs').display='block'",1000);
    }
    function mouseout_div()
    {
      clearTimeout(m);
      setTimeout("document.getElementById('divs').display='none'",1000);
    }
      

  6.   

        我忍不住要说两句了,大神门,js中变量是可以不用先声明的,不用var声明的变量赋值后会被添加到全局名字空间中,成为一个全局变量!它这里的m就会是一个全局变量了,后面一个方法完全能够访问得到。
        楼主代码的问题是因为函数名拼错了,引用的函数名跟定义的不一样,自己检查一下,出问题了要多调试。
      

  7.   

    <input type="text" name="name1" onmouseover="mouseover_div()" onmouseout="mouseout_idv()"><input type="text" name="name1" onmouseover="mouseover_div()" onmouseout="mouseout_div()">