我正在尝试在我进行ajax调用时弹出模态加载对话框,但它没有显示在onClick函数中。如果我用萤火虫放慢速度并逐步通过装载面板就会显示出来。这只是javascript超前运行吗?有更好的方法吗?
$(function(){
$("#loading_panel").dialog({
modal:true,
position:'center',
minHeight:40
});
$("a.view-in-frame").click(function(){
$("#loading_panel").dialog('open');
$("#tabs").hide();
var blog = $(document.createElement('div')).attr('id', 'blog').load(('blog_reader.php?blog='+this.href)), $("#loading_panel").dialog('close'));
$("#content_wrap").append(blog);
return false;
});
})
答案 0 :(得分:1)
只是一个想法,尝试在创建对话框时将'autoOpen'设置为false:
$("#loading_panel").dialog({
modal:true,
position:'center',
minHeight:40,
autoOpen:false
});
此时您正在告诉对话框在创建时打开。这应该可以防止这种行为。
答案 1 :(得分:1)
@ErsatzRyan
您是否尝试过在文档准备好后加载javascript函数?
像这样:
$(document).ready(function(){
//Your functions
});
正如@Nat Ryall所说,你必须将你的autoOpen设置为false
,否则你的对话框将不会打开两次。
另外,在完成所有事情后,请尝试拨打$(".selector").dialog("open")
。您告诉您的函数在加载对象之前调用它的内容。