0

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

4

3 回答 3

0

试试这个,不需要使用px,jQuery 会处理的;

if (jQuery.browser.msie && jQuery.browser.version == '9.0') {
      $('div.ui-dialog').css('left', '294');
}
于 2012-04-23T17:30:17.573 回答
0

开仓后设置仓位:

$("#form-holder").dialog( "option", "position", [294,384] );
于 2012-04-23T18:20:22.843 回答
0

尝试删除传递给 jquery css 函数中顶部参数的值中的引号:

if (ua.msie && ua.version.slice(0, 3) == "9.0") {
jQuery('div.ui-dialog').css('left', 294);
}

希望能帮助到你!

于 2012-05-11T00:26:01.443 回答