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

開いた後の位置を設定します。

$("#form-holder").dialog( "option", "position", [294,384] );
于 2012-04-23T18:20:22.843 に答える
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

jquery css 関数の top パラメーターに渡される値の引用符を削除してみてください。

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

それが役に立てば幸い!

于 2012-05-11T00:26:01.443 に答える