我正在使用setTimeout在iOs和mobile-safari上使用javascript做一些动画。
似乎当我同时定义了两个超时时,较短的超时不会被执行直到更长的时间。
setTimeout(a, 1000);
setTimeout(b, 300);
//it seems that both a and b will be called after 1000ms.
setInterval
似乎也是如此是一个已知问题? 如果有,是否有解决方法?
谢谢!
答案 0 :(得分:2)
这不是它应该发生的方式......我怀疑你可能在其他地方出现问题。
在不同的浏览器中尝试此测试:http://jsfiddle.net/V6Ktd/
HTML:
<a href="#" onclick="timetest()">Test</a>
<div>First fired at <span id="resultA"></span></div>
<div>First fired at <span id="resultB"></span></div>
JS:
function timetest() {
setTimeout(function() {
document.getElementById("resultA").innerText = "a:" + new Date().getTime();
}, 1000);
setTimeout(function() {
document.getElementById("resultB").innerText = "b:" + new Date().getTime();
}, 30);
}
点击测试后在Chrome中我看到:
First fired at a:1302168904051
First fired at b:1302168903081
我在Mobile Safari中看到了类似的结果。