代碼如下:
//顯示遮罩
$.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外面的遮罩層數據,所以不是很清楚。