JqueryUI dialog无法正常打开
我遇到的问题是这样的:在一个页面有个iframe,iframe能easyUI的Tab点击打开不同的Tab标签。每个标签就是一个子页面。然后我打开了多个子页面,我在其中一个子页面发送一个ajax请求,发送ajax请求后会用使用JqueryUI的dialog打开窗口。 当我在ajax请求会返回结果时,切换Tab子页面,去其他子页面做其他事情。等会再切换Tab过去时,dialog的弹出窗口不见了。
检查了好几遍,不是弹出窗口没有弹出来,而且是弹出下下面去了。页面也增加了一个滑动条。页面拉长了很多。用IE的页面布局工具查看了一下,dialog的长宽都超过10000px了。查看了下Jquery UI 的源码,发现在取其坐标的时候出问题了,估计其原因是不同body引起的。
修改了一下源码,给了个绝对定位。这是没办法的办法了,具体原因还有待研究解决。
......
$.widget("ui.dialog", {
options: {
autoOpen: true,
buttons: {},
closeOnEscape: true,
closeText: 'close',
dialogClass: '',
draggable: true,
hide: null,
height: 'auto',
maxHeight: false,
maxWidth: false,
minHeight: 150,
minWidth: 150,
modal: false,
position: {
my: 'center',
at: 'center',
collision: 'fit',
// ensure that the titlebar is never outside the document
using: function(pos) {
var topOffset = $(this).css(pos).offset().top;
if (topOffset < 0) {
$(this).css('top', pos.top - topOffset);
// add by sw 2013-3-7 Tab切换引起的弹出窗口无法正常显示,绝对定位
if((pos.top - topOffset)>1500){
var browserWidth = document.documentElement.scrollWidth;
var browserHeight = document.documentElement.scrollHeight;
$(this).css('top', browserHeight/2-100);
$(this).css('left', browserWidth/2-200);
}
//end
}
}
},
resizable: true,
show: null,
stack: true,
title: '',
width: 300,
zIndex: 1000
},......
分享到:
相关推荐
两个版本:一个替换ui close按钮,对三个按钮设立同样css;一个不替换,修改ui的css文件;完美打开多个对话框,并可以分别控制最大最小关闭。jquery文件没有包含进来。
可以将任何html标记Dialog起来~~~ 使用方法: $("#id").XDialog(); 关闭方法: $("#id").XDialog({isOpen:false});...和JqueryUI Dialog 的区别, 没有默认的title区域,不做任何封装,直接Dialog指定的对象!
jQueryUI有几个点优化,如dialog close时增加直接删除html元素等,不详细描述了。 为了便于传统的理解和快速开发,EF用的是Database First,数据库部分表已打开级联删除。 权限设计本来是三级的,我特地精简成两级...
对话框(dialog),是jQuery UI 非常重要的一个功能。它彻底的代替了JavaScript 的alert()、prompt()等方法,也避免了新窗口或页面的繁杂冗余。 一.开启多个dialog 只要设置不同的id 即可实现。 ...
使用jquery easyui可以很容易的创建很炫的前台页面,最近在使用过程中发现dialog存在一个问题: 用户将dialog拖出页面后,dialog就不能拖下来了,除非要重新打开页面,这个问题对于用户体验来说是非常重要的, ...
在使用jquery.ui.dialog的过程中,发现position参数有些问题,无法通过position: [PosX, PosY]动态传递位置参数。下面是官方demo 代码
[优化]优化表单,每个表单插件(ligerTextBox、ligerSpinner等)可以通过属性ligerui自动加载参数,如ligerui="{width:200}" 表格 [优化]gridRows和Total字段名可配置,提交给服务器的参数可配置,所有与用户操作交互...
service.dialog.jquery是另一个用于打开对话窗口的 jquery 组件。 我知道有很多这样的对话框插件,所以你可能想知道为什么是这个。 好吧,对我来说,有几件事对于此类插件很重要(对于几乎所有其他类型的插件也有...
学到的东西:1、删除元素,添加元素,再添加事件时,要注意unbind之前加的事件2、dialog destroy会删掉jquery UI添加的dialog元素,remove是删除自己写的元素。现在总结时,很多细节都记不太清,当时都记在博客中了...
1.新建uiBootstrap.html页面,引入依赖的js和css类库 2.新建uiBootstrap.js文件,定义一个uiModule 模块,...4.定义一个 UiController,并声明一个用于打开dialog弹出框的函数openDialog uiModule.controller(UiContro
UI的dialogr和easyui中的tab的结合使用,产生类似浏览器中打开标签的效果一样,研究了两天,终于弄明白了,一起研究讨论
打开解压后的jquery-UI下的development-bundle->demos,找到index.html,选择dialog下的model dialog,右键查看源码,观察如何使用该控件,找到一句关键代码:$(#dialog-modal).dialog({height: 140,modal: true});...
8.0打开关闭网络usb共享.js 9420-麦小兜(1).js 99乘法表.js a5main.js activity.js AD790179-8D8A-4CC6-BF68-25D58C7FD745.js adb5037常用命令.js aes加解密000.js AES加解密demo.js after work.js AJ-...