dialog销毁不干净与弹出多个dialog问题
1、关闭dialog的时候不销毁。重新打开然后影响页面的效果与样式。
原因:
dialog的close()只是将html片段隐藏,并没有销毁移除。
解决方式:
打开dialog的时候在写onClose回调处理:
onClose:function(){
$(this).dialog('destory').remove();
}
需要注意:
如果你的dialog的div是定义在html当中,当你关闭一次dialog之后会发现dialog打不开了,这是因为你的dialog已经被销毁了。所以应该在创建dialog的时候使用克隆体或者在创建的时候新建div。如:
$('<div></div>').dialog({
id: 'newDialog',
href: "xxx",
onClose:function(){
$(this).dialog('destory').remove();
}
});
2、$.delegate绑定事件导致冒泡生成dialog的问题。
使用上面的方式解决了一个页面的多个dialog的影响,但是另一个页面同样方式还是多个页面出现,影响。于是调试。
定位问题出现在生成dialog代码执行了多次。代码如下:
$.delegate('#addDialogBtn', ''click', function(){
$('<div></div>').dialog({
id: 'newDialog',
...
});
})
通过js中弹出$("#addDialogBtn").size()为0,且在click中弹出次数为2判断出是click事件走了两次,但是不是因为多个页面的原因。
定位到问题只会是出现在delegate方法。于是进行对应的查找
delegate有一个类似于预定的作用,但是delegate如果是在子页面中使用的话会产生冒泡事件,也就是出发后在子页面中执行一次,父页面中又执行一次。
于是将delegate换成普通的$('#xx').click(function(){xxx});解决!
dialog销毁不干净与弹出多个dialog问题的更多相关文章
- 弹出框插件——dialog
基于jquery和dot.js弹出框插件,兼容IE6+等其他浏览器. 思想:弹出框元素插入body节点中,并在页面垂直居中显示(fixed定位),触发确定和关闭事件绑定. 注意ie6包含两个问题:一. ...
- Android自己定义dialog中的EditText无法弹出键盘的解决
近期我独立开发的项目<全医会>已经在内測其中了.非常快将会上架到各大应用市场.之前开发的几个项目都由于一些原因没有上架还是比較遗憾的.所以,近期我心情格外的好. 今天在做一个新项目,专为律 ...
- 解决 jquery dialog 弹框destroy销毁方法不能把弹出元素设置成初始状态
在使用jquery ui中的dialog弹出窗口的时候遇到一个问题,就是页面弹出窗口关闭后希望表单元素能回到初始状态 例如文本框输入内容后关闭dialog后里面的内容清除,使用了destroy方法也不 ...
- android中自定义的dialog中的EditText无法弹出输入法解决方案
1.解决无法弹出输入法: 在show()方法调用之前,用dialog.setView(new EditText(context))添加一个空的EditText,由于是自定义的AlertDialog,有 ...
- 弹出层 div dialog
写你自己的弹出框 风格,如下面 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWluZ2xpYW5sdWFu/font/5a6L5L2T/fontsize ...
- Android--自定义弹出框-自定义dialog
项目要用到弹出框,还要和苹果的样式一样(Android真是没地位),所以就自己定义了一个,不是很像(主要是没图),但是也还可以. 废话不多说了,直接上代码 1.先看布局文件 <?xml vers ...
- android 使用Activity做窗口弹出(模拟Dialog)
我们下面使用Activity,模拟一个dialog: 首先看布局: <?xml version="1.0" encoding="utf-8"?> & ...
- jeecg中自定义dialog,实现窗体的弹出
自定一个dialog,在子窗体中写一个方法,然后通过iframe进行调取function createwindowoktext(title, addurl,width,height,oktext,ca ...
- Android实现dialog时候弹出软键盘dialog移位问题
Window win = getWindow(); WindowManager.LayoutParams params = win.getAttributes(); win.setSoftInputM ...
随机推荐
- java集合框架联系小图
- 部署的error和排查,注意服务器内存占用!
mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server thro ...
- 查看cookie的快捷方法
1.url中输入数字+javascript:alert(document.cookie) 如:2javascript:alert(document.cookie) ,然后在浏览器中去掉2,回车 ...
- Financiers Game CodeForces - 737D (博弈论)
直接暴力区间DP的话是$O(n^3)$, 关键注意到每步走的距离差不超过1, 所以差最大是$O(\sqrt{n})$的, 所以实际上有用的状态是$O(n^2)$的, 可以通过.
- git clone项目
1. 生成公钥和私钥 ssh-keygen 2. 将公钥添加到github或者gitlab上,一般github或者gitlab允许添加多个公钥,可能是考虑到用户使用不同的机器了吧,还是很贴心的. 3. ...
- Redis与memchache对比
Redis是NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string.list.se ...
- Python面向对象编程-类的封装,继承、多态
面向对象是一种程序设计思想,对象作为程序基本单元,包含了数据和操作数据的函数. 面向对象的三大特点--数据封装.多态和继承. #类的创建,class关键字,类名大写,object表示从哪个类继承而来, ...
- 二、持久层框架(Hibernate)
一.Hibernate对象的状态 实体类对象在Hibernate中有3中状态:瞬时,持久,脱管. 瞬时:没有和Hibernate发生任何关系,在数据库中也没有对应的记录,一旦JVM结束,对象就消失了 ...
- A Bug's Life(向量偏移)
A Bug's Life Time Limit : 15000/5000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total ...
- PHP隐藏版本号教程
PHP本身并不启监听服务,所以预防扫描器扫描通过版本号判断漏洞,我们要隐藏的是http头处的版本号,而不是隐藏系统命令行处的版本号. 1.查看当前php版本号 访问一当前服务中的任意页面,截取响应数据 ...