无法打开多个jquery对话框

时间:2013-01-02 18:39:38

标签: php javascript jquery html ajax

我有一个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)
    {

    }
    });

}

当我打开它时它工作正常,但如果我关闭该窗口并尝试重新打开它 - 它没有响应。

谢谢!

1 个答案:

答案 0 :(得分:3)

以下是jQuery UI Dialog代码应如何显示的示例。请记住,您需要一种方法来打开对话框。因此,再次创建一个在该模态上调用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 for Open Button

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