2011-10-11 125 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