DWZ 多模态窗口(Dialog)覆盖层不覆盖窗口问题解决方法

dwz框架多模态窗口,当前窗口为模态窗口,当新建模态窗口后,当前窗口和新建的模态窗口都可以操作,修改dwz.dialog.js文件解决该问题,代码如下。

(function($){
    $.pdialog = {
    
    ...省略N行
    
    //打开一个层
    open:function(url, dlgid, title, options) {
    
    
...省略N行

$.pdialog._init(dialog, options);
if (!op.mask) {
  $(dialog).click(function () {
    $.pdialog.switchDialog(dialog);
  });
}

if(op.resizable)
dialog.jresize();


    
        ...省略N行
        if (op.mask) {
            //修改所有对话框zIndex,900为覆盖层,要显示的对话框大于900,不显示的小于900
            $("div.dialog").not("#dialogProxy").each(function () {
                $(this).css("zIndex", 800);
            });
            //当前显示的为1000
            $(dialog).css("zIndex", 1000);
            $("a.minimize",dialog).hide();
            $(dialog).data("mask", true);
            $("#dialogBackground").show();
        }else {
            //add a task to task bar
            if(op.minable) $.taskBar.addDialog(dlgid,title);
        }
    },
    
    ...省略N行
    
    close:function(dialog) {
    
        ...省略N行
    
        $(dialog).hide();
        $("div.shadow").hide();
        if ($(dialog).data("mask")) {
            //修改最后一个窗口让其在覆盖层上显示
            var dialogs = $("div.dialog").not("#dialogProxy");
            if (dialogs.length > 1) {
                $(dialogs[dialogs.length - 2]).css("zIndex", 1000);
            } else {
                $("#dialogBackground").hide(); }
        } else{
            if ($(dialog).data("id")) $.taskBar.closeDialog($(dialog).data("id"));
        }
        $("body").removeData($(dialog).data("id"));
        $(dialog).trigger(DWZ.eventType.pageClear).remove();
    },
    
    ...省略N行
})(jQuery);

 

你可能感兴趣的:(DWZ 多模态窗口(Dialog)覆盖层不覆盖窗口问题解决方法)