好的,我得到了这个<button onclick="alert('1');setInterval(function(){},57000);alert('2');"> Show </button>
延迟没有奏效。
setTimeout
也无效。
如何解决?
答案 0 :(得分:4)
将警报置于setInterval
回调:
<button onclick="alert('1');setInterval(function(){alert('2');},57000);"> Show </button>
代码的简单扩展版本:
var div = document.querySelector('div');
function myFunction(){
div.textContent += '-';
// beware, this code might crash your browser if left running
// for a few (thousand) years!!!
}
&#13;
<button onclick="setInterval(myFunction, 1000);"> Start Interval </button>
<div></div>
&#13;
上面代码的正确样式版本:
var div = document.getElementById('d');
var button = document.getElementById('b');
button.addEventListener('click', clickHandler);
function myFunction(){
div.textContent += '-';
// beware, this code might crash your browser if left running
// for a few (thousand) years!!!
}
function clickHandler(){
setInterval(myFunction, 1000);
}
&#13;
<button id="b"> Start Interval </button>
<div id="d"></div>
&#13;
答案 1 :(得分:0)
JavaScript代码同步运行 ,这意味着每条指令都是一个接一个地执行。我们来看看您的代码:
alert('1');
setInterval(function(){
//does nothing
}, 57000);
alert('2');
现在每一行将一个接一个地执行,这意味着alert(1)
将执行,然后setInterval(...)
然后alert(2)
。您的setInterval
没有停止执行其他行。
如果您希望延迟执行代码,则必须考虑让代码在 setInterval
之后执行(我假设您要使用{{1}这里)完成。
此外,作为专业版,您应该将JavaScript代码与HTML分开。让我们考虑以下几点:
setTimeout