0

我的功能有问题,我需要从其他地方停止,例如:

我的功能:

<script>

    function caller(activate)
    {

        if (activate=="on")
        {    
            setTimeout(function() {
            alert("ok");       
            },1000)    
        }

         /// Stop function 
         else {

         }

     }

</script>

我可以在加载页面时调用这个函数

<script>
    caller('on');
</script>

当页面最终加载时,我会收到警报

但我在页面中有其他代码尝试停止该功能:

<script>

    $("#push").click(function() {

        caller('stop');
    });

</script>

这个问题是我如何在加载页面(调用者)时加载函数,当我尝试停止时我无法停止并继续,我如何加载函数以及另一侧或同时停止。

4

2 回答 2

1

setTimeout 返回一个可用于清除超时的 ID:

vat timeoutID;
function caller(activate)
{

    if (activate=="on")
    {    
        timeoutID = setTimeout(function() {
        alert("ok");       
        },1000)    
    }

     /// Stop function 
     else {             
         clearTimeout(timeoutID);
         timeoutID = null;
     }

 }
于 2013-10-19T19:09:07.157 回答
0

这是一个例子

var timeoutGlobalReference ; // Storing the setTimeout return value which is a kind of id

function caller(){
    timeoutGlobalReference = setTimeout(function(){alert("ok");},5000);    
}

// Timeout get initiated
caller();

// Prevent the function from being executed if it hasn't already been called by setTimeout
clearTimeout(timeoutGlobalReference);
于 2013-10-19T19:08:18.067 回答