如何启用和禁用setTimeout onclick

时间:2012-06-19 22:56:01

标签: javascript onclick settimeout

我有一个在页面加载时执行的功能。该函数使用setTimeout每30秒执行一次。我希望能够启用和禁用setTimeout onclick我在下面有以下代码...

  <input id="vw" value="" type="hidden">
  <a href="#" onclick="document.getElementById('vw').value='0';>click here</a>

    <script>
    /* JAVASCRIPT BELOW */
    function mPb(){

    var vw = escape(document.getElementById('vw').value);

    if(vw == ''){//DO NOT SWITCH VIEW IF EMPTY

    var sTo = setTimeout("mPb()", 30000);

    } else {

    clearTimeout(sTo);  

    }

}//END VIEW MY FEED 

   //ON SERVICE LOAD DISPLAY SHITE INSTEAD OF ONLOAD  
   window.addEventListener ? 
   window.addEventListener("load",mPb,false) : 
   window.attachEvent && window.attachEvent("onload",mPb);
   </script>

2 个答案:

答案 0 :(得分:1)

如果使用双引号正确关闭onclick属性,则代码可以正常运行:

<a href="#" onclick="document.getElementById('vw').value='0';">click here</a>

另外,这里提出两点改进代码的建议:

  • 如果您要检查函数中的空字符串,为什么在单击链接时将输入值设置为0?它有效,但如果将值设置为'',则会更清楚。

  • 使用setTimeout(和setInterval)时,请勿传递包含函数调用的字符串。它也有效,但它是dangerous。请改用:

    var sTo = setTimeout(mPb, 30000);
    

答案 1 :(得分:0)

s需要超出mPb功能,这样你可以通过onclick来引用它。