jQuery UI Dialog在IE9中没有设置“left”属性

时间:2012-04-23 17:20:17

标签: jquery css jquery-ui internet-explorer-9

出于某种原因,当我尝试在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的已知兼容性问题?

3 个答案:

答案 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);
}

希望它有所帮助!