在我的安卓手机(2.1)上,当手指在触摸屏上按住一段时间时,我发现setTimeout有一个奇怪的行为。
这个非常简单的代码实际上工作得很好(每秒调用一次),直到我滚动窗口一段时间(2-3秒就足够了),当它停止被调用时
$(document).ready(function(){
spam();
});
function spam(){
console.log("cia")
setTimeout(spam, 1000);
}发布于 2011-01-27 00:05:07
我也有同样的问题。
解决方案是将被调用的函数定义为变量,然后将ist作为参数传递给setTimeout。
试试这个:
var spam = function(){
console.log("cia")
setTimeout(spam, 1000);
}
$(document).ready(function(){
spam();
});发布于 2012-03-07 11:55:20
我以前在做一些开发时在我的设备上遇到过这个问题,但这些解决方案对我都不起作用。
从我所做的阅读来看,有相当好的文档表明确实会发生这种情况,但似乎没有一致的解决方法。
对我来说起作用的是关闭我的测试站点的窗口,清除缓存,退出浏览器,然后打开任务管理器并关闭进程。当我再次打开浏览器,转到我的测试站点时,我原来开始工作的标准代码又开始工作了。
我唯一的猜测是浏览器本身进入了某种奇怪的状态,它不运行标准的内置浏览器函数( setTimeout()或setInterval()对我来说都不起作用,但这两个javascript函数确实存在)。
我用三星Galaxy S运行安卓2.1进行了测试,我不知道这是否会对其他人有帮助,但这对我来说是有效的。
发布于 2012-04-26 11:13:24
尝尝这个
function spam(){
console.log("cia")
setTimeout("spam()", 1000);
}setTimeout:
/**
@param {String|Function} vCode
@param {Number} iMillis
@return Number
*/
window.setTimeout = function(vCode,iMillis) {};https://stackoverflow.com/questions/3488764
复制相似问题