jQuery MiniUI

标题: 请问window的hide事件怎样获取到呢? [打印本页]

作者: hehehaha    时间: 2013-10-10 16:46:43     标题: 请问window的hide事件怎样获取到呢?

在一个window A中添加了另一个window B。
在关闭(右上角:hide) A时检查B是否show。如果show的话就不予处理否则就执行hide事件。
请问如何做比较和合呢。

作者: factory    时间: 2013-10-10 16:52:47

点击右上角的关闭,并且需要判断,然后进行阻止关闭的话,可以监听onbeforebuttonclick事件

然后判断if(e.name == "close" && xxx == yyy){ //如果你点击的右上角的按钮是close,并且xxx等于yyy,就阻止关闭
   e. cancel = true;   
}

该事件在panel的API中,window从他派生,一样可以用
作者: hehehaha    时间: 2013-10-10 17:25:28

本帖最后由 hehehaha 于 2013-10-10 17:33 编辑
factory 发表于 2013-10-10 16:52
点击右上角的关闭,并且需要判断,然后进行阻止关闭的话,可以监听onbeforebuttonclick事件

然后判断if(e.nam ...

非常感谢您的解答。
但是出现个小问题,如下代码:
  1. mini.open({
  2.                         url: "reportJsp/FundEvaluationCenterDocumentManagement/reportsManagement-add.jsp",
  3.                         title: "添加报告", width: 450, height: 300,
  4.                         iconCls:"icon-add",
  5.                         onload: function () {                        
  6.                             var iframe = this.getIFrameEl();
  7.                         },
  8.                         ondestroy: function (action) {                  
  9.                                 gridr.reload();
  10.                                 gridp.reload();
  11.                         },onbeforebuttonclick: function (e){                                
  12.                                 e.cancel = true;
  13.                                 mini.alert(e.name);
  14.                         }
  15.                     });
复制代码
e.name弹出来了,但是窗口还是隐藏了。
如何能取到url页面中的控件对象呢?
请帮忙解答

作者: factory    时间: 2013-10-10 17:35:47

hehehaha 发表于 2013-10-10 17:25
非常感谢您的解答。
但是出现个小问题,如下代码:e.name弹出来了,但是窗口还是隐藏了。
如何能取到url页 ...

你的是mini.open的话,在ondestroy:function(){...} 里面return掉好了,也是可以阻止关闭的
作者: hehehaha    时间: 2013-10-10 17:49:54

factory 发表于 2013-10-10 17:35
你的是mini.open的话,在ondestroy:function(){...} 里面return掉好了,也是可以阻止关闭的 ...
  1. ondestroy: function (action) {                   
  2.           if(action=="close"){
  3.                return;
  4.           }
  5. }
复制代码
是不是这样? 好像没效果,return没有阻止隐藏窗口。
另外,如何能在这个action中获取打开的url中的控件呢?

作者: factory    时间: 2013-10-11 09:07:15

hehehaha 发表于 2013-10-10 17:49
是不是这样? 好像没效果,return没有阻止隐藏窗口。
另外,如何能在这个action中获取打开的url中的控件 ...

if (action == "close") return false;
作者: hehehaha    时间: 2013-10-11 13:14:18

factory 发表于 2013-10-11 09:07
if (action == "close") return false;

谢谢您的回答,这样果然可以。
请问我如何能获得window指定的url中的控件对象呢?
作者: factory    时间: 2013-10-11 13:35:45

hehehaha 发表于 2013-10-11 13:14
谢谢您的回答,这样果然可以。
请问我如何能获得window指定的url中的控件对象呢? ...

A页面写个获取自己页面上的控件对象

然后B页面调用该方法,
跨页面的调用方法,参考这个帖子:
http://miniui.com/bbs/forum.php? ... 6%E9%A1%B5%E9%9D%A2
作者: hehehaha    时间: 2013-10-11 14:05:53

factory 发表于 2013-10-11 13:35
A页面写个获取自己页面上的控件对象

然后B页面调用该方法,

是这样,A window中弹出一个B window
在关闭A window时,检查如果A里面的B window处于show状态,就不关闭A window,否则再关。
请问这种情况怎样实现较好呢?我发现获取子页面控件不是很好的方法。
作者: factory    时间: 2013-10-11 14:43:39

hehehaha 发表于 2013-10-11 14:05
是这样,A window中弹出一个B window
在关闭A window时,检查如果A里面的B window处于show状态,就不关 ...

反正就是B页面没关之前,A页面肯定是不会被关闭的

那你直接显示B的遮罩好了,B的遮罩把A遮住,自然A就不可能再B之前被关闭掉了
作者: hehehaha    时间: 2013-10-11 15:14:56

factory 发表于 2013-10-11 14:43
反正就是B页面没关之前,A页面肯定是不会被关闭的

那你直接显示B的遮罩好了,B的遮罩把A遮住,自然A就不可能 ...

[attach]3027[/attach]
[attach]3026[/attach]
添加了遮罩,好像还是没有效果。
请看下这个Demo有问题么? 谢谢

作者: factory    时间: 2013-10-11 16:33:02

hehehaha 发表于 2013-10-11 15:14
添加了遮罩,好像还是没有效果。
请看下这个Demo有问题么? 谢谢

那是因为你的window是在mini.open内部的

window的弹出是当前页弹出,mini.opne内部是个iframe,所以window只会在他内部,所以不可能把mini.open遮罩住

1.你内部的window也改成mini.open来做,
2. 或者2个都是window做,但是2个window都必须处于同一页面当中

3. 或者反过来,A页面用window,B页面用mini.open ,mini.open是顶级弹出,可以遮罩住所有控件




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2