我在对话框UI中遇到一个小问题。我将zIndex值标记为高数字,但似乎忽略了它。
以下是我的代码
$( "#number-add" ).dialog({
resizable: false,
width: 500,
modal: false,
autoOpen: false,
stack: false,
zIndex: 9999,
buttons: {
"Add Contact": function(e) {
var formData = $('#number-add-form').serialize();
//submit record
$.ajax({
type: 'POST',
url: 'ajax/handler-add-new-account-number.php',
data: formData,
dataType: 'json',
cache: false,
timeout: 7000,
success: function(data) {
$('#responceAddNumber').removeClass().addClass((data.error === true) ? 'errorBox' : 'passBox').html(data.msg).fadeIn('fast');
if ($('#responceAddNumber').hasClass('passBox')) {
$('#responceAddNumber').fadeIn('fast');
$('#add-form').hide();
window.location.reload();
setTimeout(function() {
$(this).dialog( "close" );
}, 1000);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
$('#response-add').removeClass().addClass('errorBox')
.html('<p>There was an<strong> ' + errorThrown +
'</strong> error due to a<strong> ' + textStatus +
'</strong> condition.</p>').fadeIn('fast');
},
complete: function(XMLHttpRequest, status) {
if ( $('#response-add').hasClass('passBox') ){
$('form')[0].reset();
}
}
});
},
Cancel: function() {
$( this ).dialog( "close" );
}
}
});
我将堆栈值设置为false,zIndex设置为9999.我在这里做错了zIndex无法正常工作?我正在使用jQuery UI Dialog 1.10.2。
感谢您的帮助。
答案 0 :(得分:4)
我在jQuery UI 1.9中花了很长时间来解决这个问题。最后,我决定采用这种有点蛮力的方法为我的模态对话框设置z-index。
$('#dialog').dialog({
modal: true,
zIndex: 25,
stack: false,
open: function (event, ui) {
$('#dialog').parent('.ui-dialog').css('zIndex', 26)
.nextAll('.ui-widget-overlay').css('zIndex', 25);
}
});
您可能需要在open事件中使用DOM遍历来正确选择叠加层,或者如果不使用模态对话框则省略它,但这给了我很好的可靠结果。
答案 1 :(得分:0)
看起来应用resizeable:false
选项会使得位置不会被设置为z-index工作所需的位置
设置resizeable:true
,删除它,或将父ui-dialog
设置为position:absolute
//after .dialog() call
$( "#number-add" ).parent(".ui-dialog").css({position:"absolute"});
或设置css样式使ui对话框具有position:absolute
.ui-dialog {
position:absolute;
}
虽然不确定这种整体风格将如何影响jQuery UI Dialog的功能