1

我尝试在更改窗口位置时使用丰富的闪光效果,但是有一个小问题,我无法解决。

请看剧本

 $(document).ready(function(){

            $('a.flash').click(function(e) {
                e.preventDefault();
                $('body').fadeOut(1500);
                setTimeout("", 1500);
                window.location=this.href;
            }); 
      });

window.location=this.href必须在 1500 毫秒后完成,但不会发生。你能解释一下为什么吗?奇怪的是,当我尝试写alert("something");而不是window.location=this.href,它工作正常。你能解释一下为什么吗?

谢谢

4

2 回答 2

7
$(document).ready(function(){

            $('a.flash').click(function(e) {
                var el = this;
                e.preventDefault();
                $('body').fadeOut(1500);
                setTimeout( function() {  location=el.href }, 1500 );
            }); 
      });

您应该提供一个回调函数作为 setTimeout 的第一个参数,该参数在 1500 毫秒后调用。

于 2010-06-13T17:43:51.997 回答
3

setTimeout不等同于其他语言 中的 a。安排一段代码在未来某个时间点运行并且不会阻塞。执行立即通过调用并继续。Thread.sleep(1500);setTimeoutsetTimeout

第一个参数要么是对函数的引用,要么是要评估的字符串。

请参阅 meder 的答案以了解适当的使用方式setTimeout,避免使用匿名函数进行评估。

于 2010-06-13T17:46:15.617 回答