0

在我的一个应用程序中使用 jQuery UI 时,我收到一个奇怪的错误。我使用通用功能打开我的对话框,它被称为 OpenDialog()

这是代码:

function OpenDialog(href,parameters,width,botoes,dialog_name,dialog_id,modal,onOpen,onClose) 
{
    load("start");
    _id = dialog_id+'_'+Date.now();

    $.post(href,parameters, function(data){
        $(data).dialog({
            title               :   dialog_name,
            draggable           :   (modal) ? false : true,
            modal               :   modal,
            resizable           :   (modal) ? false : true,
            dialogClass         :   'dialog',
            width               :   width+'px',
            close               :   function(event,ui){
                                        if (typeof onClose !== 'undefined' && onClose !== false) { onClose(); }
                                        $(this).dialog("destroy").remove();                                                 
                                    },
            open                :   function(event,ui) {
                                        $(this).attr("id",_id);
                                        _id='#'+_id;
                                        if (typeof onOpen !== 'undefined' && onOpen !== false) { onOpen(_id); }
                                        execMaskOntoThis(_id);
                                        load("end");
                                    },
            buttons             :   botoes
        });
    });
}

因此,当我创建一个新对话框时,它会为我生成一个唯一的 ID。我的问题是,当我为某些按钮使用变量 _id 时,出现了一些问题,并且“事件”显示在最后一个打开的对话框中。

难道我做错了什么?您对如何使用我的功能控制对话框中的唯一值有任何提示吗?

4

1 回答 1

0

试试这个:

function OpenDialog(href,parameters,width,botoes,dialog_name,dialog_id,modal,onOpen,onClose) 
{
    load("start");
    var _id = dialog_id+'_'+Date.now(); // _id is now part of the local scope of OpenDialog

    $.post(href,parameters, function(data){
        $(data).dialog({
            title               :   dialog_name,
            draggable           :   (modal) ? false : true,
            modal               :   modal,
            resizable           :   (modal) ? false : true,
            dialogClass         :   'dialog',
            width               :   width+'px',
            close               :   function(event,ui){
                                        if (typeof onClose !== 'undefined' && onClose !== false) { onClose(); }
                                        $(this).dialog("destroy").remove();                                                 
                                    },
            open                :   function(event,ui) {
                                        $(this).attr("id",_id);
                                        _id='#'+_id;
                                        if (typeof onOpen !== 'undefined' && onOpen !== false) { onOpen(_id); }
                                        execMaskOntoThis(_id);
                                        load("end");
                                    },
            buttons             :   botoes
        });
    });
}
于 2012-11-14T18:51:06.730 回答