出于某种原因,当我尝试在IE9中使用jQuery对话框时,它不会将任何left
属性应用于它,使其保持为0,这使得对话框一直保持在左侧。它适用于所有其他浏览器,包括IE 7和8。
以下是初始化和打开对话框的代码:
jQuery('#form-holder').dialog({
autoOpen: false, modal: true, closeOnEscape: true, width: 680, closeText: '', close: closeDialog
});
jQuery('#form-holder').dialog('open');
我尝试应用以下代码来手动设置该属性,但它也不起作用:
var ua = jQuery.browser;
if (ua.msie && ua.version.slice(0, 3) == "9.0") {
jQuery('div.ui-dialog').css('left', '294px');
}
打开对话框后生成的HTML:
<div tabIndex="-1" class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable ui-resizable" role="dialog" aria-labelledby="ui-dialog-title-form-holder" style="left: 0px; top: 384px; width: 680px; height: auto; display: block; position: absolute; z-index: 1002; outline-width: 0px; outline-style: none; outline-color: invert;">
是否存在jQuery UI和IE9的已知兼容性问题?
答案 0 :(得分:0)
试试这个,没有必要使用px
,jQuery会照顾它;
if (jQuery.browser.msie && jQuery.browser.version == '9.0') {
$('div.ui-dialog').css('left', '294');
}
答案 1 :(得分:0)
打开后设置位置:
$("#form-holder").dialog( "option", "position", [294,384] );
答案 2 :(得分:0)
尝试删除传递给jquery css函数中top参数的值中的引号:
if (ua.msie && ua.version.slice(0, 3) == "9.0") {
jQuery('div.ui-dialog').css('left', 294);
}
希望它有所帮助!