jQuery对话框在调用时不显示

时间:2009-09-08 16:13:42

标签: javascript jquery ajax jquery-ui

我正在尝试在我进行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;
                 });
})

2 个答案:

答案 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")。您告诉您的函数在加载对象之前调用它的内容。