我在改变窗口位置时尝试丰富闪光效果,但是有一个小问题,我无法解决。
请看脚本
$(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
时,它运行正常。你能解释一下原因吗?
由于
答案 0 :(得分: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毫秒后被调用。
答案 1 :(得分:3)
setTimeout
等同于其他语言中的Thread.sleep(1500);
。 setTimeout
计划在将来的某个时间运行并且不阻止的代码。执行立即通过setTimeout
电话并继续。
第一个参数是对函数的引用或将要计算的字符串。
请参阅meder的答案,了解使用setTimeout
的适当方法,避免使用匿名函数进行评估。