2009-11-30 55 views
0

我正在使用jQuery UI中的模式對話框。我想做一個Ajax調用來顯示我的對話框中的內容。如何在模態對話框中提供Ajax調用

$(function(){ 
    $('#myLink').live("click", function(){ 
     $('#lbContent').dialog('open'); 
     var url= $(this).attr("href"); 
     $('div#lbContent').empty(); 
     $('div#lbContent').load(url); 
     return false; 
    }); 

    $('#lbContent').dialog({ 
     stack:true, 
     bgiframe: true, 
     autoOpen: false, 
     height:500, 
     width:700, 
     modal: true, 
     resizable:true 
    }); 
}); 

現在,當我點擊鏈接時,它會按照預期在模式對話框中顯示內容。

但是,當我關閉該對話框,並再次單擊相同的鏈接,然後該對話框不打開。我試圖在兩者之間發出警報。

當我刷新頁面並單擊鏈接時,它按預期工作。

回答

0

無法重現您的問題。考慮添加由JavaScript + html代碼組成的精簡樣本,這些代碼一致地再現問題。

另請添加您使用的瀏覽器。如果在錯誤控制檯中顯示任何錯誤會怎麼樣。

檢查http://jsbin.com/opigo爲基於您的代碼的工作示例。

而且http://jsbin.com/opigo/edit檢查代碼段

0

只是一個字爲那些仍然使用IE 7.0的系統開發。

$('#lbContent').dialog({ 
    stack:true, 
    bgiframe: true, 
    autoOpen: false, 
    height:500, 
    width:700, 
    modal: true, 
    resizable:true, 

對話框參數列表中的最後一個逗號將導致代碼無法在IE 7.0中工作。

+0

但是OP的代碼中沒有逗號? – keyser 2012-10-28 10:29:10

1

謝謝彼得編輯我的初步評論。然而,經過對此的進一步調查後,我發現Shruti的問題是動態內容的真正問題。我甚至會重複抖動的鏈接。

問題是動態內容也使用jQuery文件。如果我使用傳遞給服務器的URL並使用Cold Fusion頁面從數據庫請求數據,我會得到與Shruti相同的結果,它首次運行,但不是後續訪問。如果我使用一個簡單的HTML頁面來顯示對話框中的圖像,它將會隨時工作。

我從動態內容頁面中刪除了jQuery函數,它每次都有效。因此,如果jQuery在加載的URL中也使用它,則會出現問題。

++++++++++++++++++++++++++++++++++++++++++++++

好當場打死分鐘,這個修補後....

如果動態頁面使用了主頁,然後使用動態腳本中不加載這些文件相同的jQuery的文件。也就是說,主頁是加載jQuery文件的唯一頁面,而不是您要加載到「主頁面」元素中的動態頁面。對此的回顧是,獨立環境中的動態頁面將不起作用,因爲您沒有調用jQuery UI。

這有點奇怪,因爲我可以在不修改任何內容的情況下顯示和隱藏帶有動態內容的標準div標籤。但是當我想在jQuery中使用對話框函數時,所有事情都會中斷。嗯!仍然是一個非常有價值的JavaScript例程庫 - 只需稍微調整它即可。這是軟件。

相關問題