2011-10-11 81 views
1

我有一个应该弹出,如果用户没有登录对话框,并按下此页面上的“投了”链接:http://www.problemio.comjQuery的对话框不会弹出

我有一些JavaScript在这里:problemio.com/js/problemio.js和我宣布,在弹出这样的全局变量:

var $dialog = $('#loginpopup') 
    .dialog({ 
     autoOpen: false, 
     title: 'Login Dialog' 
    }); 

var $problemId = $('#theProblemId', '#loginpopup'); 

$("#newprofile").click(function() 
{ 
    $("#login_div").hide(); 
    $("#newprofileform").show(); 
}); 

,但不能完全确定,如果#newprofile代码是正确的,或者如何使它全球性的,或者是否不能是全局。这种困惑源于我在这方面有点新鲜。

Chrome中的JavaScript控制台没有显示任何与此相关的错误,这更加令人困惑。

关于我可能做错什么的想法?

谢谢!

+0

尝试:如果(queue.login == NULL) – zdrsh

+0

@zdrsh,办理入住手续是没有问题的。代码到达$ dialog.open行,但它不会打开任何东西。 – GeekedOut

+0

我正在使用chrome,但它没有。我会尝试firefox – zdrsh

回答

2

尝试使用

$(“#loginpopup”)。dialog();

的调用

$(foo).dialog() 

将初始化一个对话框实例,并 默认情况下会自动打开对话框。如果你想重用一个对话框,最简单的方法就是禁用 “自动打开”选项,用:

$(foo).dialog({ autoOpen: false }) 

$(foo).dialog('open') 

打开它。要关闭它,使用

$(foo).dialog('close') 

jQuery UI Dialog

+0

工作!你为什么认为原来的方式不起作用?我认为它在API中是合法的。谢谢!! – GeekedOut

+0

我不确定。 $ dialog.dialog(“close”); $(“#loginpopup”)只是对DOM元素的引用,$ dialog是jQuery对话框的引用。但是我期望$(“#loginpopup”)。dialog(“open”);是正确的语法.. – zdrsh

1

我有点困惑,不知道你的问题是否完整。但是,你有对话的autoOpen: false集,所以你必须进行手工打开:

$("#loginpopup").dialog("open"); 
在你的“投了”单击处理程序

。 ()#

+0

是的,我认为这段代码打开了它:$ dialog.dialog('open');它在我做了一些改组之前曾经打开它。我没有发布我的所有代码,但是我发布了一个链接,指向所有JavaScript代码的位置,这样您就可以看到它是如何实现的。 – GeekedOut