`
aishu
  • 浏览: 22995 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于JqueryUI dialog无法正常打开

阅读更多
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
	},......
分享到:
评论

相关推荐

    jquery ui Dialog 添加最大最小化按钮控制

    两个版本:一个替换ui close按钮,对三个按钮设立同样css;一个不替换,修改ui的css文件;完美打开多个对话框,并可以分别控制最大最小关闭。jquery文件没有包含进来。

    Dialog 插件 for Jquery

    可以将任何html标记Dialog起来~~~ 使用方法: $("#id").XDialog(); 关闭方法: $("#id").XDialog({isOpen:false});...和JqueryUI Dialog 的区别, 没有默认的title区域,不做任何封装,直接Dialog指定的对象!

    EF+jQueryUI前后端分离设计

    jQueryUI有几个点优化,如dialog close时增加直接删除html元素等,不详细描述了。 为了便于传统的理解和快速开发,EF用的是Database First,数据库部分表已打开级联删除。 权限设计本来是三级的,我特地精简成两级...

    jQuery UI库中dialog对话框功能使用全解析

    对话框(dialog),是jQuery UI 非常重要的一个功能。它彻底的代替了JavaScript 的alert&#40;&#41;、prompt&#40;&#41;等方法,也避免了新窗口或页面的繁杂冗余。 一.开启多个dialog  只要设置不同的id 即可实现。 ...

    jQuery EasyUI Dialog拖不下来如何解决

    使用jquery easyui可以很容易的创建很炫的前台页面,最近在使用过程中发现dialog存在一个问题:  用户将dialog拖出页面后,dialog就不能拖下来了,除非要重新打开页面,这个问题对于用户体验来说是非常重要的, ...

    为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能

    在使用jquery.ui.dialog的过程中,发现position参数有些问题,无法通过position: [PosX, PosY]动态传递位置参数。下面是官方demo 代码

    jQuery LigerUI V1.1.0

    [优化]优化表单,每个表单插件(ligerTextBox、ligerSpinner等)可以通过属性ligerui自动加载参数,如ligerui="{width:200}" 表格 [优化]gridRows和Total字段名可配置,提交给服务器的参数可配置,所有与用户操作交互...

    service.dialog.jquery

    service.dialog.jquery是另一个用于打开对话窗口的 jquery 组件。 我知道有很多这样的对话框插件,所以你可能想知道为什么是这个。 好吧,对我来说,有几件事对于此类插件很重要(对于几乎所有其他类型的插件也有...

    knowledgemap

    学到的东西:1、删除元素,添加元素,再添加事件时,要注意unbind之前加的事件2、dialog destroy会删掉jquery UI添加的dialog元素,remove是删除自己写的元素。现在总结时,很多细节都记不太清,当时都记在博客中了...

    Angularjs中的ui-bootstrap的使用教程

    1.新建uiBootstrap.html页面,引入依赖的js和css类库 2.新建uiBootstrap.js文件,定义一个uiModule 模块,...4.定义一个 UiController,并声明一个用于打开dialog弹出框的函数openDialog uiModule.controller(UiContro

    UI的dialogr和easyui中的tab的结合使用

    UI的dialogr和easyui中的tab的结合使用,产生类似浏览器中打开标签的效果一样,研究了两天,终于弄明白了,一起研究讨论

    AJAX如何实现无刷新登录功能

    打开解压后的jquery-UI下的development-bundle-&gt;demos,找到index.html,选择dialog下的model dialog,右键查看源码,观察如何使用该控件,找到一句关键代码:$(#dialog-modal).dialog({height: 140,modal: true});...

    autoJS1688示例.zip

    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-...

Global site tag (gtag.js) - Google Analytics