jquery blockUI 遮罩不能消失与不能提交的解决方法 |
本文标签:blockUI 复制代码 代码如下: //显示遮罩 $.blockUI({ message: $(#divlogin), css:{width:"400px", height:"255px", top: ($(window).height() - 400) /2 + px, left: ($(window).width() - 400) /2 + px} }); //取消遮罩 $("#cancel").click(function() { $.unblockUI(); }); 取消遮罩是,js 动态生成的外层没有消失 。 在FF3.0.4,Chrome下都没问题,只是 IE6 IE7 Ie8下不正常 。 打开源码,找到了下面这句话: 复制代码 代码如下: var lyr1 = ($.browser.msie) ? $(<iframe class="blockUI" style="z-index:+ z++ +;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="javascript:false;"></iframe>) : $(<div class="blockUI" style="display:none"></div>); 可以看到,在IE下,它是生成了一个 iframe,并在这个 iframe 中加载你自己的对话框 。 那么,现在只是外层不消失,自己手动让它消失 。 复制代码 代码如下: $.blockUI({ message: $("#dialog")}); $("#cancel").click(function() { $.unblockUI(); $(".blockUI").fadeOut("slow"); }); OK,IE6 IE7都可以了 。 使用blockui后,遮罩层数据不能提交到后台了,使用ajax可以 要提交到后来,请教后明白,遮罩层不再当前form中,所以提交后没有form不能提交 解决办法,把遮罩层部分,放置到form中 $(#divlogin).parent().appendTo(jQuery("form:first"));---还为完全找到放到form外面的遮罩层数据,所以不是很清楚 。 |