我试图让我的对话框在打开三秒后自动关闭。我尝试了以下方法:
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/