2013-01-02 78 views
0

我有一個jQuery的對話框,在我有:無法打開不止一次jQuery的對話框

$(document).ready(function() { 
if(window.location.href.indexOf('#product') != -1) { 
    var productID = window.location.href.split('-'); 
    showDialog(productID[1]); 
} 

}); 

function showDialog(productID) 
{ 
    $("#dialog-modal_"+productID).html("<iframe src='index.php?act=showProduct&amp;id="+productID+"' width='100%' height='100%' frameborder='0' scrolling='no'></iframe>"); 
    $("#dialog-modal_"+productID).dialog({ 
    width: 790, 
    height: 590, 
    modal: true, 
    open: function(event, ui) 
    { 

    } 
    }); 

} 

當我打開它,它工作正常,但如果我關閉該窗口,並嘗試重新打開它 - 它沒有響應。

謝謝!!

+0

沒有辦法重新打開對話框,因爲它在'$(document).ready'期間打開,並且從來沒有其他代碼再次打開它。 – jbabey

+0

而不是'window.location.href'使用'window.location.hash'。 – dfsq

回答

3

下面是如何顯示jQuery UI對話框代碼的示例。請記住,您需要一種方法來打開對話框。因此,再次創建一個函數,該函數調用showDialog。一個按鈕或鏈接將起作用。

jQuery UI的代碼

function showDialog(productID) 
{ 
    var container = $('#dialog-modal_'+productID).html('<blah blah>'); 
    container.dialog({ 
     autoOpen: false, 
     modal: true, 
     width: 790, 
     height: 590 
    }); 
    container 
     .dialog('option', 'title', 'Your Title') 
     .dialog('option', 'buttons', { 
      Close: function() { 
       $(this).dialog('close'); 
      } 
     }) 
     .dialog('open'); 
     //do open event work here 
} 

DOM的打開按鈕

<a href="#null" id="open">Open My Modal</a> 

jQuery的開放式按鈕

$('a#open').click(function(e) { 
    e.preventDefault(); 
    showDialog(<your id>); 
});