我有一个在页面加载时执行的功能。该函数使用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>
答案 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来引用它。