Tag: settimeout

如何在jQuery .each()的每次迭代之间添加暂停?

我抓取一个jQuery对象数组,然后通过.each()修改数组中的每个单独的jQuery。 在这种情况下,我更新了类名来触发-webkit-transition-property来利用css转换。 我希望在每个css过渡开始之前暂停一下。 我正在使用以下内容,但每次更新之间没有任何延迟。 相反,他们似乎都在同时更新。 function positionCards() { $cards = $('#gameboard .card'); $cards.each(function() { setTimeout( function(){ addPositioningClass($(this)); }, 500 ) }); } function addPositioningClasses($card){ $card .addClass('position') } 我希望setTimeout会解决这个问题,但似乎并没有工作。 有没有办法在每个对象的每个CLASS名称更新之前完成暂停?

为什么setTimeout()在大的毫秒延迟值中“打破”?

当传递一个大的毫秒值给setTimeout()时,我遇到了一些意想不到的行为。 例如, setTimeout(some_callback, Number.MAX_VALUE); 和 setTimeout(some_callback, Infinity); 都导致几乎立即运行some_callback ,就好像我已经通过了0而不是一个大数字作为延迟。 为什么会发生?

延迟jQuery的hover事件?

我想推迟在jQuery中的hover事件。 当用户hover在链接或标签上时,我正在从文件中读取数据。 如果用户只是在屏幕上移动鼠标,我不希望这个事件立即发生。 有没有办法延迟事件发生? 谢谢。 示例代码: $(function() { $('#container a').hover(function() { $('<div id="fileinfo" />').load('ReadTextFileX.aspx', {filename:'file.txt'}, function() { $(this).appendTo('#info'); } ); }, function() { $('#info').remove(); } }); }); 更新: (1/14/09)添加HoverIntent插件后,上面的代码被改为以下来实现它。 实施起来非常简单。 $(function() { hiConfig = { sensitivity: 3, // number = sensitivity threshold (must be 1 or higher) interval: 200, // number = milliseconds for onMouseOver […]

什么是setTimeout的最小毫秒值?

我想说 var minValue = 0; if ( typeof callback == 'function' ) { setTimeout( callback, minValue ); } 这段代码当我用JavaScript实现callback函数。 但是我发现现代的浏览器和一些旧的浏览器 有不同的最小超时值。 我知道零不能是最小值。 setTimeout的最小值是多less? 现代的浏览器和一些旧的浏览器兼容性问题?

传递函数setTimeout在循环中:总是最后一个值?

我试图使用setTimeout来执行一个匿名函数,我传递的信息,我有麻烦。 这(硬编码版本)将工作得很好: setTimeout(function(){alert("hello");},1000); setTimeout(function(){alert("world");},2000); 但是我试图从数组中取出hello和world,并且不用(a)使用全局variables将它们传递给函数,(2)使用eval。 我知道如何使用全局variables或eval来做到这一点,但是我怎样才能做到这一点。 这是我想做的事情(但我知道这是行不通的): var strings = [ "hello", "world" ]; var delay = 1000; for(var i=0;i<strings.length;i++) { setTimeout( function(){alert(strings[i]);}, delay); delay += 1000; } 当然,string[i]将脱离上下文。 如何将string[i]传递给匿名函数而不用eval或全局variables?

是否有一个很好的理由传递一个stringsetTimeout?

我们都知道传递给setTimeout (或setInterval )的string是邪恶的,因为它在全局范围内运行,性能问题,如果你注入任何参数,可能是不安全的。所以这样做是绝对不推荐的: setTimeout('doSomething(someVar)', 10000); 赞成这个: setTimeout(function() { doSomething(someVar); }, 10000); 我的问题是:能否有一个理由去做前者? 它是可取的吗? 如果不是,为什么甚至允许? 我想到的唯一情况是想要使用一个函数或variables,它存在于全局作用域中,但已在本地作用域中被覆盖。 这听起来像糟糕的代码devise,但是…

使用JavaScript执行特定延迟后的脚本

有没有JavaScript的方法类似于jQuery的delay()或wait() (延迟脚本的执行一段特定的时间)?

迭代数组而不阻塞UI的最佳方式

我需要迭代一些大型数组,并将它们存储在来自API调用的骨干集合中。 什么是最好的方式做到这一点,而不使循环导致界面变得没有反应? ajax请求的返回也会因为返回的数据太大而阻塞。 我想我可以分解它,并使用setTimeout使它在较小的块中asynchronous运行,但有一个更简单的方法来做到这一点。 我认为一个networking工作者将是好的,但它需要改变保存在UI线程上的一些数据结构。 我已经尝试使用这个来做ajax调用,但是当它将数据返回到UI线程时,仍然有一段时间,接口没有响应。 提前致谢

setTimeout与引号和括号之间的区别

我正在学习JavaScript,并且最近学习了JavaScript时间事件。 当我在W3Schools学习了setTimeout时候,我注意到了一个我以前没有遇到的奇怪的数字。 他们使用双引号,然后调用该函数。 例: setTimeout("alertMsg()", 3000); 我知道JavaScript中的双引号和单引号意味着一个string。 我也看到我可以这样做: setTimeout(alertMsg, 3000); 用括号括起来,没有括号就复制了。 当我使用引号和括号时,它变得疯狂了。 我会很高兴,如果有人能向我解释这三种使用setTimeout方法之间的区别: 用括号括起来: setTimeout("alertMsg()", 3000); 没有引号和括号: setTimeout(alertMsg, 3000); 而第三个只使用引号: setTimeout("alertMsg", 3000); 注意: setTimeout引用的一个更好的来源是MDN 。

Chrome:超时/间隔暂停在后台标签中?

我正在使用这个testing来testing setTimeout的准确性。 现在我注意到了(如预期的那样) setTimeout不是很准确,但是对于大多数电器来说不是非常不准确的。 现在,如果我在Chrome中运行testing并让它在后台选项卡中运行(所以切换到另一个选项卡并在那里浏览),返回testing并检查testing结果(如果testing完成),它们将发生显着变化。 它看起来像超时运行慢很多。 testing在FF4或IE9这没有发生。 所以看起来像Chrome暂停或至less放慢JavaScript没有焦点的执行。 无法find关于这个问题的networking。 这意味着我们不能运行后台任务,比如例如使用XHR调用和setInterval定期检查服务器(我怀疑看到setInterval的相同行为,如果时间与我在一起,将会写一个testing)。 有没有人遇到过这个? 会不会有解决这个暂停/减速的方法? 你会把它称为一个错误,我应该这样归档吗?