问题:

  公司项目最近在用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. ios 性能优化概述

    在开发IOS程序的时候,不止是简简单单的把代码堆砌起来,或者说有一个比较好的架构,程序就ok的.还需要在程序性能上进行优化.所谓优化,并非只是简单的优化几个算法,让程序看起来跑的更快.优化是有目标的, ...

  2. 解决python编码问题报错:'ascii' codec can't encode characters in position 0-15: ordinal not in range(128)

    这个问题很奇怪,在服务器上执行一个写数据库的python文件,正常执行,但是使用java的ssh进行调用脚本,发现就是不执行数据库的写入,然后使用了try except的方式,打印了错误信息,发现报错 ...

  3. BZOJ1014:[JSOI2008]火星人(Splay,hash)

    Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样一个字符串:madamimadam, 我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 ...

  4. @property 装饰器

    property() 函数作用于新式类,返回属性值. class C(object): def __init__(self): self._x = None def getx(self): print ...

  5. Web项目打成war包部署到tomcat时报MySQL Access denied for user 'root'@'localhost' (using password: YES)错误解决方案

    Web项目使用使用root账号root密码进行部署,通过Eclipse加载到Tomcat服务器可以发布成功,打成war包放到tomcat的webapps目录无法发布成功,报错: jdbc.proper ...

  6. SpringBoot实战(七)之与Redis进行消息传递

    此次教程演示安装的是Window版的Redis, Linux安装Redis可以参考我的这篇博文:Redis的安装和客户端使用注意事项 关于Java连接Redis操作方面可以参考我的这篇博文:Java连 ...

  7. 【Mybatis】参数处理

    单个参数:mybatis不会做特殊处理, #{参数名/任意名}:取出参数值. 多个参数:mybatis会做特殊处理. 多个参数会被封装成 一个map, key:param1...paramN,或者参数 ...

  8. 允许跨域资源共享(CORS)携带 Cookie (转载)

    如何让CORS携带Cookie CORS 是一个 W3C 标准,全称是“跨域资源共享”(Cross-origin resource sharing).默认浏览器为了安全,遵循“同源策略”,不允许 Aj ...

  9. EF Core 中多次从数据库查询实体数据,DbContext跟踪实体的情况

    使用EF Core时,如果多次从数据库中查询一个表的同一行数据,DbContext中跟踪(track)的实体到底有几个呢?我们下面就分情况讨论下. 数据库 首先我们的数据库中有一个Person表,其建 ...

  10. 你真的了解Scrum吗?

    敏捷开发是以用户的需求为核心,采用迭代.循序渐进的方法进行软件开发.而Scrum是实现敏捷开发的具体方式之一.然而你对Scrum又了解多少呢? 什么是Scrum Scrum是橄榄球运动的一个专业术语, ...