javascript - jQuery UI 对话框使用 setTimeout 自动关闭

标签 javascript jquery jquery-ui settimeout

我试图让我的对话框在打开三秒后自动关闭。我尝试了以下方法:

setTimeout($("#mydialog").dialog('close'), 3000);

这是在上下文中:

$("#acknowledged-dialog").dialog({
    height: 140,
    modal: true
});

setTimeout($("#acknowledged-dialog").dialog('close'), 3000);

但是用这种方法,它甚至不显示!我猜 close 方法在页面上显示后立即被调用。日志显示没有错误。

我还尝试绑定(bind)到 dialogopen 事件:

$("#acknowledged-dialog").bind('dialogopen', function(event, ui) {
    setTimeout($(this).dialog('close'), 3000);
});
$("#acknowledged-dialog").dialog({
    height: 140,
    modal: true
});

对话框会显示,但不会自动关闭。这里的日志也没有错误。

我不能在 setTimeout 的 $ 参数中使用“this”吗?

最佳答案

setTimeout 在 3 秒后调用 $("#mydialog").dialog("close") 的返回值。你想把整个东西作为一个字符串抛出,它应该工作得很好。另外,我认为您不想在初始化对话框之前绑定(bind)“dialogopen”。下面应该工作得很好:

$("#acknowledged-dialog").dialog({
    height: 140,
    modal: true,
    open: function(event, ui){
     setTimeout("$('#acknowledged-dialog').dialog('close')",3000);
    }
});

关于javascript - jQuery UI 对话框使用 setTimeout 自动关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7954953/

相关文章:

javascript - GraphQL 解析时出错 "ç": Cannot parse the unexpected character "\u00E7"

javascript - Node "save"主密码5分钟

javascript - 包含用户添加的行以及每行上的输入元素查找的表单

javascript - Jqplot,分割动态图

jquery - 如何在对话框内的 Jquery 中更新表格/表单内的 div 文本?

jquery - 图像悬停效果-jquery

javascript - 无法通过在浏览器中输入地址来更改主干应用程序中的页面

javascript - HeaderTemplate 中的 CheckBox 验证 ItemTemplate CheckBox

javascript - 具有多个提交按钮的条件表单验证

javascript - 按下 Enter 后,Jquery UI 自动完成功能不会提交