【问题标题】:jQuery Dialog not appearing when called调用时没有出现jQuery对话框
【发布时间】:2009-09-08 16:13:42
【问题描述】:

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

【问题讨论】:

  • 你解决过这个问题吗?我也有同样的问题。
  • 好的,谢谢。我什至不记得我现在是如何解决这个问题的:P

标签: javascript jquery ajax jquery-ui


【解决方案1】:

只是一个想法,尝试在创建对话框时将“autoOpen”设置为 false:

$("#loading_panel").dialog({
                             modal:true,
                             position:'center',
                             minHeight:40,
                             autoOpen:false
                            });

目前您正在告诉对话框在创建时打开。这应该可以防止这种行为。

【讨论】:

  • 无论如何,它应该在那里。 :)
【解决方案2】:

@ErsatzRyan

您是否尝试过将 javascript 函数设置为在文档准备好后加载?

像这样:

$(document).ready(function(){

//Your functions

});

正如@Nat Ryall 所说,您必须将您的自动打开设置为false,否则您的对话框将不会打开两次。

还有一件事,在您完成所有操作后尝试致电您的$(".selector").dialog("open")。你告诉你的函数在加载它的内容之前调用你的对话框。

【讨论】:

  • $(function () { });他使用的语法是等效的。请参阅spec for ready
  • 这是为我解决的问题。在文档准备好之前创建对话框显然不起作用,即使没有引发错误并且您不尝试显示它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-06
  • 1970-01-01
  • 2018-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多