怎么把web弹出框像alter()一样做在最顶层.

yiyishuitian 2015-11-18 01:51:25
应用环境:.net +jquery 微信公共号 web开发

有 产品 和 产品子类 两个dropdownlist 的下拉控件默认加入了 "请选择" 项 ,
当没有选择产品类 而直接点击产品子类下拉项时,
弹出自定义的对话框"请选择产品类别!"

我的思路是 产品子类 下拉时加了click 事件进行判断,但是我弹出的对话框被档住了.请看图:
理想的应该是这样的:


但是实际做出来的效果是这样的:





如果是使用 alert() 函数是可以的,但是界面又不统一了,而且频繁弹出对话框时会有 "关闭网页的选项"



求解决方法,让我的弹出框像 alert() 的那样在最顶层显示 , 或者有其它的处理方式也行!!谢谢!!
...全文
591 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiyishuitian 2015-11-18
  • 打赏
  • 举报
回复
问题解决,谢谢各位!尤其是 hch126163 ,正是他的这个思路,我想出了解决方法. 解决方法是 下拉菜单是个click事件, 而且他的弹出框的等级应该是很高的,感觉只比alert低,比其它的都高. 但是我在他上面设置了一个 mousedown 事件,这样就在下拉菜单还没有执行的时候就把它给隐藏了. 谢谢hch126163!
yiyishuitian 2015-11-18
  • 打赏
  • 举报
回复
引用 12 楼 some6one 的回复:
999可能是小了 有次我设了9000 我以为够大了 结果下层的竟然是9999...最好调试下 看下具体值
弹窗用的是 99999 ,如果再设置 999999就不正常显示了.
yiyishuitian 2015-11-18
  • 打赏
  • 举报
回复
引用 9 楼 hch126163 的回复:
弹出div 模拟窗口前 隐藏页面 select 关闭弹出窗口后,显示页面 select
$('select').hide(); $('option').hide(); 都无法阻止, 下拉菜单的弹出,而且还是在最顶层.
some6one 2015-11-18
  • 打赏
  • 举报
回复 1
999可能是小了 有次我设了9000 我以为够大了 结果下层的竟然是9999...最好调试下 看下具体值
yiyishuitian 2015-11-18
  • 打赏
  • 举报
回复
引用 7 楼 showbo 的回复:
请选择那个是系统的弹出层吧,和alert一样。你自定义的层应该无法设置在系统的上面,除非dl你改成第三方的插件,如easyui的combobox这种,而不是直接select
嗯,在微信里打开网页里是在最上层,应该是微信浏览器的机制, 如果单独在pc端查看网页的话,我的弹出框可以在最顶层.
erstens 2015-11-18
  • 打赏
  • 举报
回复
直接用easyui
hch126163 2015-11-18
  • 打赏
  • 举报
回复
弹出div 模拟窗口前 隐藏页面 select 关闭弹出窗口后,显示页面 select
啾啾我 2015-11-18
  • 打赏
  • 举报
回复
引用 3 楼 yiyishuitian 的回复:
[quote=引用 1 楼 jslang 的回复:] 弹出层的 z-index 设置的大一点
已经设置为 999了[/quote] 999太小了,设置再大点999999,或者你看你使用的是什么弹框插件,看看有没有相关的参数设置。
Go 旅城通票 2015-11-18
  • 打赏
  • 举报
回复
请选择那个是系统的弹出层吧,和alert一样。你自定义的层应该无法设置在系统的上面,除非dl你改成第三方的插件,如easyui的combobox这种,而不是直接select
yiyishuitian 2015-11-18
  • 打赏
  • 举报
回复
引用 4 楼 qq_19965967 的回复:
最好上代码,不然不知道你怎么写的呀,整个提示框是写在了html结构的最下面吗?
代码是网上copy的一个,具体如下:


//弹出窗口
(function () {
    $.MsgBox = {
        Alert: function (title, msg) {
            GenerateHtml("alert", title, msg);
            btnOk(); //alert只是弹出消息,因此没必要用到回调函数callback
            btnNo();
        },
        AlertSimple: function (msg) {
            GenerateHtmlSimple("alert", msg);
            btnOk(); //alert只是弹出消息,因此没必要用到回调函数callback
            btnNo();
        },
        Confirm: function (title, msg, callback) {
            GenerateHtml("confirm", title, msg);
            btnOk(callback);
            btnNo();
        },
        ConfirmSimple: function (msg, callback) {
            GenerateHtmlSimple("confirm", msg);
            btnOk(callback);
            btnNo();
        }
    }

    //生成Html
    var GenerateHtmlSimple = function (type, msg) {

        var _html = "";

        _html += '<div id="mb_box"></div><div id="mb_con"><span id="mb_tit">提示</span>';
        _html += '<a id="mb_ico">x</a><div id="mb_msg">' + msg + '</div><div id="mb_btnbox">';

        if (type == "alert") {
            _html += '<input id="mb_btn_ok" type="button" value="确定" />';
        }
        if (type == "confirm") {
            _html += '<input id="mb_btn_ok" type="button" value="确定" />';
            _html += '<input id="mb_btn_no" type="button" value="取消" />';
        }
        _html += '</div></div>';

        //必须先将_html添加到body,再设置Css样式
        $("body").append(_html); GenerateCss();
    }

    //生成Html
    var GenerateHtml = function (type, title, msg) {

        var _html = "";

        _html += '<div id="mb_box"></div><div id="mb_con"><span id="mb_tit">' + title + '</span>';
        _html += '<a id="mb_ico">x</a><div id="mb_msg">' + msg + '</div><div id="mb_btnbox">';

        if (type == "alert") {
            _html += '<input id="mb_btn_ok" type="button" value="确定" />';
        }
        if (type == "confirm") {
            _html += '<input id="mb_btn_ok" type="button" value="确定" />';
            _html += '<input id="mb_btn_no" type="button" value="取消" />';
        }
        _html += '</div></div>';

        //必须先将_html添加到body,再设置Css样式
        $("body").append(_html); GenerateCss();
    }

    //生成Css
    var GenerateCss = function () {

        $("#mb_box").css({
            width: '100%', height: '100%', zIndex: '99999', position: 'fixed',
            filter: 'Alpha(opacity=60)', backgroundColor: 'black', top: '0', left: '0', opacity: '0.6'
        });

        $("#mb_con").css({
            zIndex: '999999', width: '70%', position: 'fixed',
            backgroundColor: 'White', borderRadius: '15px'
        });

        $("#mb_tit").css({
            display: 'block', fontSize: '14px', color: '#444', padding: '10px 15px',
            backgroundColor: '#DDD', borderRadius: '15px 15px 0 0',
            borderBottom: '3px solid #009BFE', fontWeight: 'bold'
        });

        $("#mb_msg").css({
            padding: '20px', lineHeight: '20px',
            borderBottom: '1px dashed #DDD', fontSize: '13px'
        });

        $("#mb_ico").css({
            display: 'block', position: 'absolute', right: '10px', top: '9px',
            border: '1px solid Gray', width: '18px', height: '18px', textAlign: 'center',
            lineHeight: '16px', cursor: 'pointer', borderRadius: '12px', fontFamily: '微软雅黑'
        });

        $("#mb_btnbox").css({ margin: '15px 0 10px 0', textAlign: 'center' });
        $("#mb_btn_ok,#mb_btn_no").css({ width: '85px', height: '30px', color: 'white', border: 'none' });
        $("#mb_btn_ok").css({ backgroundColor: '#168bbb' });
        $("#mb_btn_no").css({ backgroundColor: 'gray', marginLeft: '20px' });


        //右上角关闭按钮hover样式
        $("#mb_ico").hover(function () {
            $(this).css({ backgroundColor: 'Red', color: 'White' });
        }, function () {
            $(this).css({ backgroundColor: '#DDD', color: 'black' });
        });

        var _widht = document.documentElement.clientWidth; //屏幕宽
        var _height = document.documentElement.clientHeight; //屏幕高

        var boxWidth = $("#mb_con").width();
        var boxHeight = $("#mb_con").height();

        //让提示框居中
        $("#mb_con").css({ top: (_height - boxHeight) / 2 + "px", left: (_widht - boxWidth) / 2 + "px" });
    }


    //确定按钮事件
    var btnOk = function (callback) {
        $("#mb_btn_ok").click(function () {
            $("#mb_box,#mb_con").remove();
            if (typeof (callback) == 'function') {
                callback();
            }
        });
    }

    //取消按钮事件
    var btnNo = function () {
        $("#mb_btn_no,#mb_ico").click(function () {
            $("#mb_box,#mb_con").remove();
        });
    }
})();



yiyishuitian 2015-11-18
  • 打赏
  • 举报
回复
引用 2 楼 xiaowinwin 的回复:
用jquery的Dialog插件不可以吗?详细参照下面的一篇文章。 http://www.cnblogs.com/bestfc/archive/2009/06/08/1498742.html
使用其它的弹出框,或者模态框的话,样式不统一. 没有用过 jquery ui的东西,自定义 对话框CSS 难不难?
chanel_1 2015-11-18
  • 打赏
  • 举报
回复
最好上代码,不然不知道你怎么写的呀,整个提示框是写在了html结构的最下面吗?
yiyishuitian 2015-11-18
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
弹出层的 z-index 设置的大一点
已经设置为 999了
xiaowinwin 2015-11-18
  • 打赏
  • 举报
回复
用jquery的Dialog插件不可以吗?详细参照下面的一篇文章。 http://www.cnblogs.com/bestfc/archive/2009/06/08/1498742.html
天际的海浪 2015-11-18
  • 打赏
  • 举报
回复
弹出层的 z-index 设置的大一点
本系列课程分为,0-理论知识部分    0.1-oca_ocp_ocm相关知识内容(uploading)1-安装部分     1.1单实例命令行安装     1.2单实例图形安装     1.3rac安装     1.4rac(pdb架构)+dg 单实例安装(用rman的duplicate和rman备份2种方式搭建dg)     1.5rac(pdb架构)+rac dg2-迁移部分    2.1单实例之间的迁移    2.2单实迁移到rac    2.3rac迁移到单实例    2.4rac和rac之间的迁移。    2.5关于xtts的迁移方法的使用3-恢复部分   3.1单实例本地恢复   3.2rac本地恢复4-数据库升级部分   4.1 19.3升级到19.13   4.2 12.1.0.2升级到19.3   4.3 12.2.0.1升级到19.3   4.4 19.3的rac升级到19.135-数据库优化部分    5.1如何看懂执行计划    5.2 hash, nest loop,  merge的执行计划各自适用于那种场景?    5.3为什么要用直方图,19c的直方图有frency, balance,  top-frenkency, hybrid?允许最大的bucket是多少?6-数据库asm磁盘操作部分   6-1如何用一条命令迁移rac存储。   6-2如何用笨方法迁移rac存储。   6-3目前asm磁盘是external冗余级别,如何修改为normal的冗余级别。7-数据库工具部分   7.1oem如何进行安装,如何进行纳管数据库,如何使用   7.2如何用oem监控数据库 8-综合实战。   a库是11.2.0.3的单实例数据库,容量有20T。   b库是19.13的rac环境的pdb数据库,容量只有21T.   如何把a库的数据迁移到b库的pdb数据库?   这个综合实战非常考验大家,基本上囊括了数据库复制安装,数据库dg,数据库升级的方方面面。   大家可以自己先想想怎么实现。一课程主题手把手带大家进行实操,在实操中提升自己手把手带大家学习orace 19的ocm课程,学完本课程,至少具有3-5年oracle数据库水平。文档和视频is uploading. 二课程特色 学oracle,找阿伟阿伟出品,必属精品从实战出发,贴近实战,自己实战,实战为王,在实战中提升自己授人以鱼不如授人以渔通过此系列课程可以提高3-5年oracle水平交个朋友,物有所值,诚意满满走心课程,把自己在运维中的坑,提炼知识后,实战给大家 三课程内容 0.理论知识部分(上传中。。。)   0.1数据库监听(动态监听,静态监听,多个ip同时监听1521,一个ip监听多个service_name)   0.2rman 命令中的set rename datafile和 alter database  rename datafile 有啥区别?   0.3    ............1.数据库单实例安装  1.0 安装检查    1.0.1安装包检查    1.0.2修改系统参数    1.0.3数据库用户创建    1.0.4创建目录    1.0.5上传安装软件包    1.0.6修改oracle用户环境变量  1.1 rhel7系统图形安装oracle 19c单实例数据库  1.2 rhel7系统命令行安装       1.2.0命令行安装数据库软件       1.2.1命令行创建non cdb数据库实例       1.2.2命令行创建 cdb数据库实例2.rac数据库安装    1.课程结束成果演示          1.1 用workstation,安装一套rhel7+oracle19c+rac+multipath+共享存储+DNS服务器+DNS客户端+NTP服务器+NTP客户端的生产环境          1.2 怎样打oracle19c的rac补丁(包括GI补丁,oracle补丁,数据库补丁,OJVM补丁,bug补丁)     2.安装openfiler软件,模拟共享存储+配置多路径访问       2.1安装openfiler软件       2.2配置openfiler软件(配置2个虚拟网卡,模拟服务器的2个HBA卡)        2.3创建ocr磁盘       2.4创建mgmt磁盘       2.5创建数据文件磁盘       2.6创建归档日志磁盘     3.安装2台数据库服务器       3.1安装2台数据库服务器RHEL7.5       3.2配置服务器双网卡绑定+配置服务器心跳线     4.安装多路径软件识别共享存储中的磁盘        4.1安装服务器本地yum源        4.2安装iscsi软件,配置多路径配置文件,识别共享存储中的磁盘        4.3识别ocr磁盘        4.4识别mgmt磁盘        4.5识别数据文件磁盘        4.6识别归档日志磁盘     5.oracle19c的rac环境系统参数官方说明        5.1如何配置oracle19c的rac的系统参数(我们参考官方说明)        5.2oracle19c+rac环境Best Practices 官方说明文档     6.安装oracle19c+rac之前的准备工作        6.1修改/etc/hosts文件        6.2配置DNS服务器+DNS客户端+NTP服务器+NTP客户端        6.3创建用户和组        6.4创建目录        6.5修改用户环境变量        6.6安装相关软件包        6.7配置ssh互信        6.9禁用服务器透明大页     7.安装oracle+19c+rac软件       7.1安装GI软件       7.2创建ASM磁盘,主要是数据文件磁盘和归档日志磁盘       7.3安装数据库软件       7.4创建数据库实例       7.5日常常用维护集群命令(启停数据库,启停集群,查看监听,教同学们怎样不死记命令,而且命令还正确)     8.打补丁     8.1打GI和ORACLE的操作系统补丁      8.2打OJVM补丁      8.3打ORA600的bug补丁     9.课程总结和成果演示     9.1课程总结和成果演示3.rac+dg(单实例)数据库安装(pdb架构)     3.1.1dg知识点讲解     3.1.2配置dg监听,密码文件,参数文件。     3.1.2通过rman的duplicate命令进行dg搭建1。     3.1.3通过rman的duplicate命令进行dg搭建2     3.1.4进行数据库切换需要的配置。     3.1.5数据库正常switch over     3.1.6数据库如何fail over     3.1.7dg库failover以后通过闪回快速恢复dg     3.1.8dg库failover以后通过新主库的控制文件快速恢复dg     3.1.9备库归档缺失如何进行解决。     3.1.10recover database和recover standby database是否可以在dg中使用?     3.1.11如何通过rman的备份进行搭建dg。     3.1.12dg库使用静态监听无法监听pdb数据库的service问题如何进行解决?   4.rac+rac dg的实战步骤(pdb架构)(上传中。。。)5.19c单实例数据库通过rman备份进行异机迁移到单实例数据库     5.1通过备份脚本进行数据,归档,控制文件备份     5.2通过备份脚本进行归档,控制文件备份       (注意源库备份目录是/backup/db和/backup/ar)     5.3传输备份文件到目标库        (传输备份文件到目标库的/home/oracle/bk目录)     5.4利用参数文件启动数据库到nomount     5.5利用备份集恢复控制文件,并启动数据库到mount     5.6通过restore database恢复数据库        5.6.1注册目标库备份集到控制文件        5.6.2启动数据库到mount状态,确定recover database的序列号     5.7recover database        5.7.1通过rman 进行recover database        5.7.2通过sql 命令行进行 recover database;     5.8.打开数据库          5.8.1解决打开数据库后,sys用户无法远程监听登录问题          5.8.2修改数据库动态参数启动数据库     5.9.备份的扩展             5.9.1如何知道备份集里面有哪些归档             5.9.2如何从这些备份集中提取归档             5.9.3进行异机数据库迁移时,如何逐步应用归档,并且如何open read only数据库后,继续应用归档             5.9.4为何要进行 open read only进行提前打开验证。               5.10.rman迁移备份的补充             5.10.1如何再rman中设置数据文件,在线日志生成路径。               类似如下命令                    run  6单实例数据库无数据丢失通过rman备份异机迁移到rac数据库和rac数据库通过rman迁移到rac数据库      6.1单实例源库进行数据库升级           19.3的源库升级到19.13版本(包括打数据库补丁和ojvm补丁)      6.2.传输备份文件到目标库           传输备份文件到目标库的/home/oracle/bk目录     6.3.利用参数文件启动数据库到nomount     6.4.利用备份集恢复控制文件,并启动数据库到mount        6.5.通过restore database恢复数据库           注册目标库备份集到控制文件           启动数据库到mount状态,确定recover database的序列号     6.6.recover database          通过rman 进行recover database          通过sql 命令行进行 recover database;     6.7.单实例数据库恢复完成后,配置为rac数据库           注册数据库到集群          修改数据库参数文件到asm     6.8.迁移rac数据库到rac数据库。           单实例数据库异机迁移到rac和,rac数据库异机迁移到rac有啥不一样。           根据上面理论,实施rac数据库异机恢复到rac7数据库本地恢复系列     7.1单实例数据库本地恢复     7.2rac数据库本地恢复8综合实战(uploading)     7.1实战课题:        有一台11.2.0.3的单实例数据库A,数据库容量有20T,无备份。        如何迁移到新搭建的rac环境B(数据库版本是19.13),并且是迁移到rac的pdb数据库中,并且rac数据库的asm容量只有21T.        这次实战包含的知识点。        1-如何在环境B复制数据库A的软件,最好进行复制,因为数据库A的11.2.0.3打了很多补丁,如果安装11.2.0.3软件,会造成版本不一致。        2-如何搭建11.2.0.3的单实例dg。        3-dg归档缺失如何解决。        4-如何升级11.2.0.3单实例到11.2.0.4单实例        5-如何升级11.2.0.4单实例到19.3单实例        6-如何升级19.3单实例到19.13单实例。        7-如何迁移19.13单实例数据库到19.13的rac的pdb数据库中。9数据库升级系列     8.1 单实例19c数据库升级到19.13版本。     8.2 单实例12.2.0.1数据库升级到19.13版本。     8.3 单实例12.1.0.2数据库升级到19.13版本。     8.4 19c数据库rac升级到19.13版本。

87,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧