gpt4 book ai didi

JavaScript代码 'window.location'执行onclick

转载 作者:行者123 更新时间:2023-11-28 14:01:12 26 4
gpt4 key购买 nike

我正在尝试这段代码:

function view_mail_popup_close()
{
setTimeout("function () { $('#popupbox').fadeOut('slow'); }",200);
setTimeout("function () { window.location='view_mail.php' }",800);
}

我想在链接的onclick上执行它,但只有淡入淡出功能有效!

有人可以告诉我为什么我的重定向功能不起作用吗?

最佳答案

我对它们中的任何一个都能起作用感到有点惊讶,因为您给 setTimeout 一个字符串,它定义一个函数而不调用它;如果您给 setTimeout 一个字符串,它实际上会在发生超时时对字符串执行 eval ,理论上会创建但不会调用该函数。 (编辑:我已经确认:http://jsbin.com/uvuje5)

setTimeout 一个字符串几乎从来都不正确或必要;相反,给它一个函数:

function view_mail_popup_close()
{
setTimeout(function () { $('#popupbox').fadeOut('slow'); },200);
setTimeout(function () { window.location='view_mail.php'; },800);
}

Live example

在那里,该函数立即被创建,并且对它的引用被赋予setTimeout,当超时发生时它将调用它。

(题外话:我还在 window.location = 语句的末尾添加了一个缺少的分号。JavaScript 有分号插入,所以以前的版本可以工作,但我强烈主张永远不要依赖它。)

<小时/>

更新:正如 Capsule 所指出的,您可能希望使用 fadeOut 上的回调来代替第二个 setTimeout:

function view_mail_popup_close()
{
setTimeout(function () {
$('#popupbox').fadeOut('slow', function() {
window.location='view_mail.php';
});
}, 200);
}

Live example

关于JavaScript代码 'window.location'执行onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5080867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com