问题:

  公司项目最近在用easyui写后台管理系统,发现dialog使用后总会报出莫名奇妙的问题

  1.打开多次后数据显示上一次的,表单提交错误或者获取数据错误

  2.来回跳转后,会有打开其它dialog的可能,神奇的串台现象

排查:

  既然打开dialog为上一次的,那么表明【浏览器加载了多个同id对象,导致浏览器解析加载错误】

  那么,只要保证浏览器存在唯一的对象就能解决这个问题

解决方案:

  1.新建一个变量,保存dialog对象,无论那个使用都操作该变量

    结果:经实验,只要调用$('#id').dialog({...}); 就会构造一个新的dialog对象,开启关闭都要用,多次调用还是会产生多个对象

       网上说该方案可行,我试了试,没啥效果,得大家试了,试好了,麻烦给我留言

  2.打开dialog后,添加关闭事件,执行destroy方法,保证每次打开都是新的

    结果:如果dialog绑定了页面的div,那么打开一次后,再也打不开了,猜想可能是连着这个div的dom对象一次玉石俱焚了。。。。惨!

    可行的解决方案:

      js追加dom元素,保证每次打开都追加一个dom对象让他去毁,以下是代码

      应该也可以不声明,直接写,在里边添加关闭销毁事件

//注意:我用的时候是先声明了该变量,指定固定属性
var dataFile_Dg = $('<div></div>').dialog({
title: '文本文件上报监控详情',
width: 1000,
height: 600,
closed: true,
cache: false,
modal: true,
onClose: function () {
$(this).dialog('destroy',true);
}
});

//在使用该变量的时候,要把固定属性重写一遍,否则打开一次小一次,最后就留个按钮了,请慎重!!!
//详情页
function forwardToDataFileMonitor(bankId) {
// alert("详情");
dataFile_Dg.dialog({
title: '文本文件上报监控详情',
width: 1000,
height: 600,
closed: true,
cache: false,
modal: true,
href: 'report/static/html/dataFileMonitor/dataFileMonitor.html',
queryParams:{
Authorization: localStorage.token,
bankId: bankId,
reportDate: $('#reportDate').datebox('getValue')
},
});
dataFile_Dg.dialog('open');
}

补充建议:对话框加id

$('<div></div>').dialog({
id: 'uniqId', //插入该id,作为方法内变量,访问加该id即可
title: '文本文件上报监控详情',
width: 1000,
height: 600,
closed: true,
cache: false,
modal: true,
href: 'report/static/html/dataFileMonitor/dataFileMonitor.html',
queryParams:{
Authorization: localStorage.token,
bankId: bankId,
reportDate: $('#reportDate').datebox('getValue')
},
});
$("#uniqId").dialog('open');

easyui-dialog打开多次数据串台问题的更多相关文章

  1. easyUI dialog打开对话框,显示列表数据,选取一条数据操作后赋值给父窗口 resultMap声明为全局,生成getset方法

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" ...

  2. jquery.util.easyui.dialog

    (function ($) { var $parent = parent.$; //获取弹出窗口数据集合 function getDialogs() { var dialogs = $parent(& ...

  3. easyui dialog 中嵌入html页面

    最近使用easyui比较多,这个插件确实很好用.在使用时也遇到了大大小小的问题,好在都一一解决了. 记录一下今天遇到的问题. 目的:用easyui的dialog嵌入一个html页面(html中仍有要执 ...

  4. Easyui dialog Y轴滚动条定位

    使用Easyui dialog进行数据新增的时候,如果Y轴方向有滚动条,当关闭之前的时候,将滚动条拉到最下方,再次打开的时候,滚动条还是定位在最下方. 需求: 每次打开的时候dialog Y轴滚动条定 ...

  5. easyui.dialog.js

    (function ($) { var $parent = parent.$; //获取弹出窗口数据集合 function getDialogs() { var dialogs = $parent(& ...

  6. JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能

    JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id="productDg"></table> &l ...

  7. EasyUI Form提交后json数据IE上需要下载(转)

    EasyUI Form提交后json数据IE上需要下载(转)   在使用EasyUI的form中的submit方法时,返回json在IE中变成提示下载的问题,代码如下: $('#fileForm'). ...

  8. 窗口-EasyUI Window 窗口、EasyUI Dialog 对话框、EasyUI Messager 消息框

    EasyUI Window 窗口 扩展自 $.fn.panel.defaults.通过 $.fn.window.defaults 重写默认的 defaults. 窗口(window)是一个浮动的.可拖 ...

  9. Easyui dialog中嵌入iframe

    如果easyui dialog的地址属性用href超链接,easyui 不会加载整个url页面,只会截取url目标页的body体间的html, 如果想加载把其他页面 加载进dialog的iframe中 ...

随机推荐

  1. Hive安装报错

    安装好hive后在bin路径下输入hive报错: [ERROR] Terminal initialization failed; falling back to unsupported 原因是hado ...

  2. 【[国家集训队]Crash的数字表格 / JZPTAB】

    这道题我们要求的是 \[\sum_{i=1}^N\sum_{j=1}^Mlcm(i,j)\] 总所周知\(lcm\)的性质不如\(gcd\)优雅,但是唯一分解定理告诉我们\(gcd(i,j)\time ...

  3. 用firefox的插件下载网页中的视频

    对于网页中的一些视频,直接下载不了,可以用专用下载软件下载,也可以用firefox的NetVideohunter Video Downloader插件下载网页中的视频,方便快捷. 工具/原料   fi ...

  4. Ajax请求与浏览器缓存

    在现代Web应用程序中,前端代码充斥着大量的Ajax请求,如果对于Ajax请求可以使用浏览器缓存,那么可以显著地减少网络请求,提高程序响应速度. 1. Ajax Request 使用jQuery框架可 ...

  5. 4.12 Spark环境更新

    addJar方法是做什么的呢?它用于将Jar文件添加到Driver的RPC环境中. 通过addJar和addFile可以将各种任务执行所依赖的文件添加到Driver的RPC环境中, •小结 伴生对象是 ...

  6. JNI由浅入深_3_Hello World

    1.需要准备的工具,eclipse,cdt(c++)插件,cygwin(unix)和 android ndk. 在cygwin的etc目录下将ndk的路径引入到profile文件中,可以在cygwin ...

  7. JavaScript编写学生查询系统

    const readline = require('readline-sync')//引用readline-sync //用户名,密码 let user = [{ username: 'yang', ...

  8. Android 把url生成二维码并贴到给定的底图上

    主要是用到了com.google.zxing jar包生成二维码的功能,这个jar包需要自己接下载 直接上代码 public static Bitmap CreateBinaryCodeImageBy ...

  9. 04_Docker入门(下)之docker镜像和仓库的使用

    docker镜像和仓库 镜像介绍 docker镜像是由文件系统叠加而成的.最低端是一个引导文件系统,即bootfs.当一个容器启动后,它会将被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存以 ...

  10. java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application.yml'

    java.lang.IllegalStateException: Failed to load property source from location 'classpath:/applicatio ...