• Easyui 创建dialog的两种方式,以及他们带来的问题


    $('#yy').dialog('open');//打开dialog

    这地方要注意,加入你关闭窗口的地方使用$('#yy').dialog('destroy');那么你这个dialog就只能使用一次,为什么呢,因为这地方你创建的是一个固定位置的dialog,因为你是把dialog固定在了上面的div中,这时你只能使用close,即$('#yy').dialog('close');close即是把当前窗口隐藏,但没有销毁,所以你可能遇到的问题就是,下次再次打开这个窗口的时候,里面还是上次的内容。如果使用destroy,那么整个dialog组件都被销毁了,所以只能使用第一次,第二次再怎么点也没用。那有解决的办法吗,肯定是有的。

    方法二:

    dialog的第二种创建方式就是,创建一个临时的对话窗口,不用在jsp写个div啥的。直接在js中写就可以了,如下

     

    $('<div/>').dialog({

    .....//添加一些属性,比如加载,按钮等

    }

    这地方关闭的时候可以destroy了

    我在最外层的div中写个overflow:hidden,目的就是让下面的内容超出框架后,使用滚动条,但大家要注意,使用滚动条,最起码这个框架的位置得是固定的吧,即需要在div外层的div给一个postion=relative啊,当然firefox和谷歌只要不是IE内核的,即使你这地方没有固定位置也没问题,人家浏览器强大嘛。但问题就在IE中,不理你这套,必须按照规矩来,那怎么办呢,反正我是弄了很久。

    方法一:放弃使用临时dialog,即第二种创建方式,使用第一种创建方式,但每次打开一个dialog都要刷新才能用,太蛋疼啦。

    方法二:很简单

    $('<div style="position:relative"/>').dialog({

    .....//添加一些属性,比如加载,按钮等

    }

    对就只要在上面的 div后面加个style="position:relative“就搞定了,希望这能帮助在兼容性折磨下的你吧

    转自:http://www.ithao123.cn/content-5611961.html

    dialog创建方法有两种,一种就是直接$(‘div’).dialog()方式创建,一种就是在页面中写一个div,如<div id=”test”></div>,$(“#test”).dialog().第一种方法在关闭过后,div就会消失,而第二种方法在关闭过后,div仍然存在,但是使用destroy方法后,会使这个div方法不可用.

    使用第二种关闭dialog,直接$(id).dialog(“close”)就可以直接关闭

    主要说的是第二种,在第二种当中,如果是要在定义的按钮事件中执行关闭操作的话,可以这样写

    $(this).closest(.window-body).dialog("close")

    如果是在dialog事件中关闭dialog可以这样写

    $("this").dialog("close")
    为什么可以这样写,我们可以在生成一个dialog的时候,跟踪dialog的结构,比如我使用第二种方法生成一个dialog,那么带有id的div在生成dialog后,会变成如下所示
    dialog-close
    如图所示,如果是id创造的话,可以直接使用$(“#add”).dialog(“close”)关闭,所以$(this).closest(.window-body).dialog("close")也可以关闭
  • 相关阅读:
    第三方支付——支付宝支付
    使用Ansible自动配置Nginx服务
    使用Ansible自动配置JDK环境
    mycat 生产环境 cpu 占用 800% 问题 Mycat调优启用useOffHeapForMerge报java.lang.NumberFormatException异常解决(附源码)
    es 备份 恢复
    修改es 副本数 replicas
    Java压缩流GZIPStream导致的内存泄露
    java 堆外内存泄漏 排查
    Linux下查看某一进程所占用内存的方法(转)
    jmap -histo java内存泄漏排查 -XX:MaxDirectMemorySize=2G
  • 原文地址:https://www.cnblogs.com/yexiaoyanzi/p/5668079.html
Copyright © 2020-2023  润新知