点击其他地方隐藏popup窗口

现在系统有一个弹出的日期选择窗口, 要求在窗口弹出后, 点击窗口以外的地方,窗口要隐藏

 

解决方法代码

 

 

              $("#dateimg").click(
                     function(event){
                         new Calendar(null, null, 0).show($("#dateinput")[0],$("#dateimg")[0]); 
                         event.stopPropagation();
                     }
              );
              
              $("html").bind("click", function(){
                  if($("#__calendarPanel").is(":visible")){
                        $("#__calendarPanel").hide();
                  }
              });

$("#__calendarPanel").bind("click", function(event){event.stopPropagation();});

 

__calendarPanel是弹出窗口的div id

实际上就是在整个页面范围内绑定点击事件, 

dateimg是图片, 点击它就会弹出窗口,之所以加

event.stopPropagation();

是为了阻止事件向上传播到html,假如传播到html的话 窗口一弹出马上又会隐藏的

 

 

 

$("#__calendarPanel").bind("click", function(event){event.stopPropagation();});

这句是说在窗口内部阻止事件向上传播, 阻止html的click事件,不然窗口就没法用了,因为一点就会隐藏,

但是在我自己的代码中,没有加这句话也没事,应该是因为弹出的div里面包着的是一个iframe, 我的点击实际上发生在ifame里, 那么html .click事件没有绑到iframe上?!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值