gpt4 book ai didi

jQuery - UI 对话框 - 寻找定时关闭的智能解决方案

转载 作者:行者123 更新时间:2023-12-01 06:40:40 27 4
gpt4 key购买 nike

我写了以下内容:

// Called with setTimeout(magicDialogDelayedClose, 2500);
function magicDialogDelayedClose() {
$(".ui-dialog").fadeOut(function() {
dialog_general.dialog('close');
});
}

当我显示一个我想在 2.5 秒后自动关闭的通知对话框时,上面的代码会被 setTimeout 调用。

我注意到的问题是,如果使用手动关闭对话框,则该计时器仍在运行。如果用户随后打开一个新对话框(这很有可能),则计时器可以关闭该新对话框。

处理这个问题的明智方法是什么?j

最佳答案

粗略地说,在您的情况下,您不希望有一个全局适用的函数。您希望在每个对话框出现时将其关闭排队。从版本 1.4 开始,jQuery 已经实现了 delay函数就可以完成这个任务。它将一个空 Action 添加到动画队列中,以便后续的链接动画函数在队列中的延迟之后出现。

其实现方式如下:

function insertDialog() {
// substitute your insertion code here
var d = $('<div class="ui-dialog"></div>').appendTo($('#dialog_area'));

// add a 2.5s delay into the animation queue, then add
// a fadeOut with $(this).close() as a callback
d.delay(2500).fadeOut(function(){ $(this).close() });
}

关于jQuery - UI 对话框 - 寻找定时关闭的智能解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4701742/

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