Tag: settimeout

如何创建一个简单的setTimeout循环

我只需要通过3个元素变体创建一个无限循环。 这是我到目前为止: var count = 1; setTimeout(transition, 2000); function transition() { if(count == 1) { $(‘#ele’).html(‘variation 2’); var count = 2; } else if(count == 2) { $(‘#ele’).html(‘variation 3’); var count = 3; } else if(count == 3) { $(‘#ele’).html(‘variation 1’); var count = 1; } setTimeout(transition, 2000); }

代码执行中的同步延迟

我有一个代码,需要在延迟说5000毫秒后执行。目前我使用的是setTimeout但它是异步的,我希望执行等待它的返回。 我尝试过使用以下内容: function pauseComp(ms) { var curr = new Date().getTime(); ms += curr; while (curr < ms) { curr = new Date().getTime(); } } 但我想延迟的代码是使用raphaeljs绘制一些对象,并且显示器根本不是平滑的。 我正在尝试使用doTimeout插件。 我需要延迟一次,因为延迟和要延迟的代码都在一个循环中。 我没有要求id,所以我没有使用它。 例如: for(i; i<5; i++){ $.doTimeout(5000,function(){ alert('hi'); return false;}, true);} 这等待5秒钟,然后给出第一个Hi,然后连续循环迭代在第一个之后立即显示警报。 我想要它做的是等待5秒再次提醒警报等待然后提供警报等等。 任何提示/建议表示赞赏!

对于Javascript中的循环,仅从最后一次迭代输出值

我有这个Javascript代码,按预期工作: setTimeout(function(){$(“.test”).append(“test1”)},1000); setTimeout(function(){$(“.test”).append(“test2”)},2000); 它首先显示“test1”,然后在一秒后显示“test2”,因此:“test1test2”,这就是我想要的。 当我尝试在FOR循环中执行此操作时,如下所示: var timeInterval = 1000; for (var i = 0, l = 2; i < l; i++ ) { setTimeout(function(){$(".test").append("test" + i)},timeInterval); timeInterval += 1000; } 然后我先得到“test2”,然后在第二次得到“test2”,这样:“test2test2”,这不是我想要的。 事实上,如果l = 3,那么我得到“test3test3test3”而不是“test1test2test3”。 有人知道如何解决这个问题吗?

setTimeout使用多个选项卡加速

我有一个与此类似的setTimeout问题。 但是这个解决方案对我没用,因为我不能在我的文件中使用php。 我的网站有一个滑块,其中包含每8秒移动一次的图像列表。但是,当我在浏览器中打开一些选项卡然后再切换回来时,它就变得疯狂了。 滑块继续一个接一个地移动图像而没有8秒的时间延迟。 我只在Chrome和最新的Firefox中看到它。 **编辑:我检查了console.log(),并且setTimeout在clearTimeout之前和之后返回相同的数字。 不知道为什么。 也许这也与它有关? ** 编辑2:我添加了一个小提琴: http : //jsfiddle.net/Rembrand/qHGAq/8/ 代码看起来像: spotlight: { i: 0, timeOutSpotlight: null, init: function() { $(‘#spotlight .controls a’).click(function(e) { // do stuff here to count and move images // Don’t follow the link e.preventDefault(); // Clear timeout clearTimeout(spotlight.timeOutSpotlight); // Some stuff here to calculate next item // […]

如何暂停setTimeout调用?

可能重复: javascript:pause setTimeout(); 我正在使用jQuery并为我的网站开发通知系统。 通知使用setTimeout函数自动淡出。 如何停止setTimeout调用的计时器? 例如,我想在鼠标hover在通知上时暂停setTimeout调用并继续向下计数鼠标… 我用谷歌搜索“暂停setTimeout”没有运气。 我正在使用clearTimeout清除setTimeout调用,同时淡出mouseout上的通知,但是暂停效果会很好。 有任何想法吗?

为什么一些JavaScript开发人员使用setTimeout一毫秒?

我在使用jQuery插件tablesorter时遇到问题而且我无法调用触发器两次。 例如,这不起作用: this._$table.trigger(‘update’); this._$table.trigger(‘sorton’, [[[1,1]]]); 但这有效: this._$table.trigger(‘update’); setTimeout($.proxy(function() { this._$table.trigger(‘sorton’, [[[1,1]]]); }, this), 1); 然后我看到问题出现在触发器’update’中,它用body调用方法: function () { var me = this; setTimeout(function () { // rebuild parsers. me.config.parsers = buildParserCache( me, $headers); // rebuild the cache map cache = buildCache(me); }, 1); } 为什么tablesorter开发人员使用setTimeout一毫秒?

setTimeout延迟不起作用

我试图绕着setTimeout包围我,但我无法让它正常工作。 我在这里建立了一个例子: http : //jsfiddle.net/timkl/Fca2n/ 我希望在单击一个锚点后对文本进行倒计时 – 但我的setTimeout似乎同时触发,即使我已将延迟设置为1秒。 这是我的HTML: Click me! 这是我的JS: $(document).ready(function() { function foo(){ writeNumber = $(“#target”); setTimeout(writeNumber.html(“1”),1000); setTimeout(writeNumber.html(“2”),1000); setTimeout(writeNumber.html(“3”),1000); }; $(‘a’).click(function() { foo(); }); }); 任何关于我可能做错的提示都非常感谢:)

在递归函数中停止settimeout

我的问题是我无法停止计时器。 我有这个方法来设置这个论坛的超时。 它应该将标识符存储在全局变量中。 偶然的是,我发现在我隐藏“mydiv”之后它仍在运行。 我现在还需要知道,如果递归函数创建多个实例,或者仅为超时创建一个实例。 因为首先我认为它每次都会覆盖“var mytimer”。 现在我不太确定。 什么是一个可靠的方法来停止计时器? var updatetimer= function () { //do stuff setTimeout(function (){updatetimer();}, 10000); }//end function //this should start and stop the timer $(“#mybutton”).click(function(e) { e.preventDefault(); if($(‘#mydiv’).is(‘:visible’)){ $(‘#mydiv’).fadeOut(‘normal’); clearTimeout(updatetimer); }else{ $(‘#mydiv’).fadeIn(‘normal’); updatetimer(); } }); 谢谢,理查德

jQuery delay() – 如何阻止它?

我已经尝试过stop(true,true),stop(true)和clearQueue(); 但这不起作用。 我有快速更换幻灯片的问题,我已经有一些function必须重置一切,但它不起作用。 function reset(){ $(‘div’).clearQueue(); $(‘#img’).html(”).css({‘left’:0,’right’:0,’opacity’:1,’z-index’:1}); $(‘#img2’).html(”).css({‘left’:0,’right’:0,’opacity’:1,’z-index’:1}); $(‘#place’).html(”);$(‘#place’).html(”); } 但我认为这不会停止(或删除)动画上的delay()函数。 所以我不知道我是否不必使用setTimeout函数。 这是一块动画脚本: reset(); actual_slide=2; $(‘#img’).html(”).css({‘opacity’:0,’z-index’:2}).delay(time_delay/5).fadeTo(time_fast,1).delay(time_delay*2).fadeTo(time_fast,0); $(‘#img2’).html(”).css({‘opacity’:’0′,’top’:0}).fadeTo(time_fast,1).animate({‘top’:’-495′},time_delay*3,function(){ if(actual_slide==2){$(‘#img2’).css({‘top’:0}).fadeTo(time_fast*2,0).html(”);}else{reset();} if(actual_slide==2){$(‘#img’).html(”).fadeTo(time_fast*2,’1′).css({‘left’:-300,’top’:-700}).animate({‘left’:-900,’top’:-700},time_delay*2);}else{reset();} if(actual_slide==2){$(‘#1’).css({‘width’:1365,’height’:1200}).animate({‘width’:1665,’height’:1400},time_delay*2);}else{reset();} }); 那个actual_slide必须在重复那个函数之前保护它,但这也不行。问题是当我快速更改幻灯片时,因为重置不会阻止所有内容,并且它开始做我不想要的事情在(比如将照片改为其他和其他)。

为什么一切都在Javascript中使用setTimeout显示?

我试图在javascript中向下滚动屏幕,然而,在执行时,它只是说了一下并立即显示所有内容。 所以它没有用$(“#Menu”).html(”)清除$(“#Menu”).html(”)函数和setTimeout(function {},500)只是为整个页面而不是代码段设置超时。 var MenuData = [ {‘Name’:’pictures’,’x’:’30’}, {‘Name’:’blog’,’x’:’50’}, {‘Name’:’contact’,’x’:’42’} ] ; var PositionArray = new Array(); $(document).ready(function () { for (var count = 0; count < 1000; count++) { $("#Menu").html(''); if (PositionArray[count] != null) { PositionArray[count]++; } else { PositionArray[count] = 0; } setTimeout(function () { for (var i in MenuData) { $("#Menu").append('123′); } […]