easyui-dialog打开多次数据串台问题
问题:
公司项目最近在用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打开多次数据串台问题的更多相关文章
- easyUI dialog打开对话框,显示列表数据,选取一条数据操作后赋值给父窗口 resultMap声明为全局,生成getset方法
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" ...
- jquery.util.easyui.dialog
(function ($) { var $parent = parent.$; //获取弹出窗口数据集合 function getDialogs() { var dialogs = $parent(& ...
- easyui dialog 中嵌入html页面
最近使用easyui比较多,这个插件确实很好用.在使用时也遇到了大大小小的问题,好在都一一解决了. 记录一下今天遇到的问题. 目的:用easyui的dialog嵌入一个html页面(html中仍有要执 ...
- Easyui dialog Y轴滚动条定位
使用Easyui dialog进行数据新增的时候,如果Y轴方向有滚动条,当关闭之前的时候,将滚动条拉到最下方,再次打开的时候,滚动条还是定位在最下方. 需求: 每次打开的时候dialog Y轴滚动条定 ...
- easyui.dialog.js
(function ($) { var $parent = parent.$; //获取弹出窗口数据集合 function getDialogs() { var dialogs = $parent(& ...
- JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能
JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id="productDg"></table> &l ...
- EasyUI Form提交后json数据IE上需要下载(转)
EasyUI Form提交后json数据IE上需要下载(转) 在使用EasyUI的form中的submit方法时,返回json在IE中变成提示下载的问题,代码如下: $('#fileForm'). ...
- 窗口-EasyUI Window 窗口、EasyUI Dialog 对话框、EasyUI Messager 消息框
EasyUI Window 窗口 扩展自 $.fn.panel.defaults.通过 $.fn.window.defaults 重写默认的 defaults. 窗口(window)是一个浮动的.可拖 ...
- Easyui dialog中嵌入iframe
如果easyui dialog的地址属性用href超链接,easyui 不会加载整个url页面,只会截取url目标页的body体间的html, 如果想加载把其他页面 加载进dialog的iframe中 ...
随机推荐
- Android笔记之 Web Service 基础
一.Web Service是什么? 就是网络服务.依据W3C的定义,WebServices(Web服务)是一个用于支持网络间不同机器互操作的软件系统,它是一种自包括.自描写叙述和模块化的应用程序,它能 ...
- 【[SDOI2008]山贼集团】
非常好的一道题 树上的状压\(dp\) 根据数据范围我们就能知道这是一道需要状压的题目 所以状态就是\(dp[i][S]\)表示在以\(i\)为根的子树里,选择的状态为\(S\)的最大收益 这个收益只 ...
- 线性回归 Python实现
import numpy as np import pylab def plot_data(data, b, m): x = data[:, 0] y = data[:, 1] y_predict = ...
- sum函数
>>> np.sum([0.5, 1.5]) 2.0 >>> np.sum([0.5, 0.7, 0.2, 1.5], dtype=np.int32) 1 > ...
- App测试需要测什么
App,做为当下最热的手机安装软件,无论是产品本身的设计还是性能,易用性等都是非常受考验.一个app能在用户的手机上使用,并作为一个长期用户是非常不容易的.那么,App的测试中我们到底要测试什么呢? ...
- IT经理苏大强:我不吃,我不喝,我要赶项目!
IT经理老苏的日常 1周,2周,3周 -- 为了公司的发展和孩子的奥利奥 这点短痛不算什么 Iron Cloud 微服务开发云[www.ironz.com] 高效满足业务需求 高速交付 驱动增长
- iOS:图片相关(18-02-12更)
1.图片显示相关 1).图片聊天背景拉伸不失真 2).捏合.双击.下拉缩放 3).Banner.相册 4).动画 2.图片操作相关 1).获取.下载图片(分享.传图片用) 2).保存UIImage到本 ...
- [leetcode] 二叉树的前序,中序,后续,层次遍历
前序遍历 [144] Binary Tree Preorder Traversal 递归遍历 使用递归,先保存父节点的值,再对左子树进行遍历(递归),最后对右子树进行遍历(递归) vector< ...
- 【转】Linux常用命令大全(非常全!!!)
最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大.我将我了解到的命令列举一 ...
- 宏观看restframework序列化
序列化 序列化意义 web有两种应用模式,一种是前后端不分离,一种是前后端分离,当前后端分离的时候,后端只需要向前端传输数据即可,不需要进行其他的操作,一般如果是中大型公司,都是前后端分离,这也是目前 ...