jQuery delay()或setTimeout()

jQuery delay()或setTimeout(),jquery,javascript-events,Jquery,Javascript Events,如果您能帮助我,请告诉我…我需要在新选项卡(或窗口)中打开一个链接,但只有在执行了一些函数之后。我尝试了所有方法,纯Javascript、jQuery,没有任何效果。 提供的解决方案是使用delay()还是使用setTimeout()对我来说并不重要。 我认为delay()的问题在于它只适用于fx队列中的函数,我尝试了一些方法,但就是无法让它工作 代码如下: $(function(){ $(“#playNowLink”).click(function() { $(‘#header

如果您能帮助我,请告诉我…我需要在新选项卡(或窗口)中打开一个链接,但只有在执行了一些函数之后。我尝试了所有方法,纯Javascript、jQuery,没有任何效果。 提供的解决方案是使用delay()还是使用setTimeout()对我来说并不重要。 我认为delay()的问题在于它只适用于fx队列中的函数,我尝试了一些方法,但就是无法让它工作

代码如下:

$(function(){

   $(“#playNowLink”).click(function() {

   $(‘#header’).effect(“fold”, { size: “50%” }, 1000);

   $(‘#showVideo’).delay(1100).fadeIn(‘slow’);

   // Here i would like to call ‘playNow.html’,
   //but only after 7-8 seconds


});

提前感谢

此javascript应该可以工作-您对它有什么问题

setTimeout(function(){

   //whatever the heck you want do to:

   //open window:
   window.open('new_window_url');

   //change location?
   window.location = "new_location_url";

}, 7500); //7.5 seconds
setTimeout('changeLocation()',7000);
function changeLocation()
{
    window.location="playNow.html";
}

像这样使用
.fadeIn()
的回调


.fadeIn('slow',function(){//在淡入完成后执行此操作})

这是您缺少的行:

setTimeout(function() {window.open('playNow.html');}, 7000);

但是我喜欢Matijs把它放在动画回调中的想法。

哦,天哪,我现在觉得自己很愚蠢。我把时间浪费在delay()上,当我尝试使用setTimeout时,我从来没有向它传递匿名函数,相反,我使用的是某个博客的一些代码,这显然不好。谢谢。小心你的卷曲引号…你的代码工作正常,但是我试过了,但是没有用。我以为是一样的。setTimeout(“window.location.href('playNow.html')”,7000);您询问是否在新窗口或选项卡中打开它-为此,请使用
窗口。打开
。如果要重定向当前窗口,请使用
window.location.href
。请注意,正确的语法是
window.location.href=“playNow.html”
。不要在函数中使用引号,triggers eval()@mcp:这是一个非常好的答案,有用的注释将OP的bug固定住了。不管怎样,多亏了你,现在情况更好了——没有了
eval
:)(我认为应该进行一次投票……)