jquery.ui.dialog只打开一次

时间:2014-05-29 16:00:25

标签: jquery modal-dialog

我有一个部分,我试图加载另一个页面然后打开作为对话框模式。 它第一次触发甚至加载页面并以模态打开但是进一步尝试它只在div中加载页面而不显示页面本身"。

我使用了以下代码。

$("#dialogDisplayECC").dialog({
    autoOpen: false,
    height: 500,
    width: 1090,
    modal: true,
    close: function () {
        $("#dialogDisplayECC").dialog("close");
    }
});


function showEccInDialog(pId, pCar, pkmStart, pkmEnd) {
    url = "detail.do?mi=main" + "&pId=" + pId + "&pCar=" + pCar + "&pStart=" + pkmStart + "&pEnd=" + pkmEnd;
    $("#dialogDisplayECC").load(url);
    $("#dialogDisplayECC").dialog("open");

} 

<div id="dialogDisplayECC" style='overflow: auto;'></div>

函数showEccInDialog由div上的onclick触发。 它确实将正确的参数发送到showEccInDialog,因为它第一次工作。

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

试试这个:

var dialogDisplayECC= $( "#dialogDisplayECC" ).dialog( {
    autoOpen: false,
    height: 500,
    width: 1090,
    modal: true,
    close: function() {
        $( "#dialogDisplayECC" ).dialog("close");
    }

function showEccInDialog( pId, pCar, pkmStart, pkmEnd ) {
   url =  "detail.do?mi=main" +"&pId=" + pId + "&pCar=" +pCar + "&pStart=" + pkmStart + "&pEnd=" +pkmEnd;
   $( "#dialogDisplayECC" ).load(url);
   dialogDisplayECC.dialog("open");

}

答案 1 :(得分:0)

您的问题属于您的函数范围,它不会在onclick调用的上下文中加载。您可以在其中定义您的函数以使其成为全局函数,但由于您使用的是jquery,因此该解决方案更好,在文档准备就绪时设置它,现在您可以从onclick调用全局函数

http://jsfiddle.net/q2645/3/

$( document ).ready(function(){
        $( "#dialog:ui-dialog" ).dialog( "destroy" );
        var dialogDisplayECC= $( "#dialogDisplayECC" ).dialog( {
            autoOpen: false,
            height: 500,
            width: 1090,
            modal: true,
            close: function() {
                $( "#dialogDisplayECC" ).dialog("close");
        }});

        showEccInDialog = function( pId, pCar, pkmStart, pkmEnd ) {
           url =  "detail.do?mi=main" +"&pId=" + pId + "&pCar=" +pCar + "&pStart=" + pkmStart + "&pEnd=" +pkmEnd;
           $( "#dialogDisplayECC" ).load(url);
           dialogDisplayECC.dialog("open");

        }
});