var x=0
function test(obj,thisIncrease)
{
     x=x+1;
     obj.innerHTML=x;
     thisIncrease = setTimeout(function(){test(obj,thisIncrease)},2000);
}如上例,我想在thisIncrease传入参数,并以thisIncrease的参数作为settimeout的实例名。
我要在多个DIV上创建setTimeout,每个DIV的settimeout都不同名,以便我可以随时停下其中一个。

解决方案 »

  1.   

    可以定义一个函数,返回setTimeout的实例,每次调用都会得到一个实例,再付给一个变量
      

  2.   


    谢谢楼上各位的指点。
    我还是有点不太懂,三楼的朋友能说详细一点吗?
    我写成这样,还是不起作用。
    <div  class="messageBox" id="mydisplay">Display</div>
    <div onclick="startcount('mydisplay','abc')" class="messageBox">开始</div>
    <div  class="messageBox" onclick="stopcount('abc')">停止</div>
    <script language="JavaScript">
    var isIe=(document.all)?true:false; var x=0;
    var y=0;
    function startcount(obj,stoper)
    {

    document.getElementById(obj).innerHTML=y
    y=y+1;
    stoper=setTimeout(function(){startcount(obj)},1000);
    }function stopcount(stoper)
    {
    clearTimeout('stoper'); 
    }</script>clearTimeout不起作用。
      

  3.   

    上面的代码错了。
    <div  class="messageBox" id="mydisplay">Display</div>
    <div onclick="startcount('mydisplay','abc')" class="messageBox">开始</div>
    <div  class="messageBox" onclick="stopcount('abc')">停止</div>
    <script language="JavaScript">
    var isIe=(document.all)?true:false; var x=0;
    var y=0;
    function startcount(obj,stoper)
    {

    document.getElementById(obj).innerHTML=y
    y=y+1;
    alert(stoper);
    stoper=setTimeout(function(){startcount(obj,stoper)},3000);
    }function stopcount(stoper)
    {
    alert(stoper);
    clearTimeout(stoper); 

    }
    </script>