dan*_*ins 7 javascript jquery jquery-ui settimeout
我打算在打开后三秒钟自动关闭对话框.我尝试了以下方法:
setTimeout($("#mydialog").dialog('close'), 3000);
Run Code Online (Sandbox Code Playgroud)
这是在上下文中:
$("#acknowledged-dialog").dialog({
height: 140,
modal: true
});
setTimeout($("#acknowledged-dialog").dialog('close'), 3000);
Run Code Online (Sandbox Code Playgroud)
但是用这种方法,它甚至都没有显示出来!我猜测close方法在页面显示后立即被调用.日志显示没有错误.
我也试过绑定到dialogopen事件:
$("#acknowledged-dialog").bind('dialogopen', function(event, ui) {
setTimeout($(this).dialog('close'), 3000);
});
$("#acknowledged-dialog").dialog({
height: 140,
modal: true
});
Run Code Online (Sandbox Code Playgroud)
对话框显示,但不会自动关闭.这里的日志也没有错误.
我无法在setTimeout中的$参数中使用'this'吗?
Def*_*ity 18
setTimeout在3秒后调用$("#mydialog").对话框("关闭")的返回值.你想把整个东西扔成一个字符串,它应该工作得很好.另外,我不认为你想在初始化对话框之前绑定'dialogopen'.下面应该工作得很好:
$("#acknowledged-dialog").dialog({
height: 140,
modal: true,
open: function(event, ui){
setTimeout("$('#acknowledged-dialog').dialog('close')",3000);
}
});
Run Code Online (Sandbox Code Playgroud)
我专门针对您遇到的问题撰写了一篇文章.请阅读.
简而言之,您希望在$("#mydialog").dialog('close')由于延迟或触发事件而希望执行的任何位置包装内联函数.
setTimeout(function(){
$("#mydialog").dialog('close')
}, 3000);
Run Code Online (Sandbox Code Playgroud)
该对话框甚至没有显示,因为您在每种情况下打开它后立即关闭它.
| 归档时间: |
|
| 查看次数: |
29937 次 |
| 最近记录: |