133

フォームを表示する JQuery UI ダイアログ ポップアップがあります。フォームで特定のオプションを選択すると、新しいオプションがフォームに表示され、フォームが高くなります。これにより、メイン ページにスクロールバーがあり、JQuery UI ダイアログにスクロールバーがあるシナリオが発生する可能性があります。この 2 つのスクロールバーのシナリオは見苦しく、ユーザーを混乱させます。

スクロールバーを表示せずに常にコンテンツに合わせて JQuery UI ダイアログを拡大 (および場合によっては縮小) するにはどうすればよいですか? メインページのスクロールバーのみが表示されることをお勧めします。

4

7 に答える 7

140

更新: jQuery UI 1.8 の時点で、(2 番目のコメントで述べたように) 有効なソリューションは次を使用することです。

width: 'auto'

autoResize:true オプションを使用します。説明します:

  <div id="whatup">
    <div id="inside">Hi there.</div>
  </div>
   <script>
     $('#whatup').dialog(
      "resize", "auto"
     );
     $('#whatup').dialog();
     setTimeout(function() {
        $('#inside').append("Hello!<br>");
        setTimeout(arguments.callee, 1000);
      }, 1000);
   </script>

これが実際の例です: http://jsbin.com/ubowa

于 2009-04-19T04:47:45.883 に答える
48

答えは、

autoResize:true 

ダイアログを作成するときのプロパティ。これが機能するために、ダイアログの高さを設定することはできません。そのため、ダイアログの作成者メソッドまたは任意のスタイルを介してピクセル単位で固定の高さを設定すると、autoResize プロパティは機能しません。

于 2009-04-16T14:42:40.453 に答える
28

これは jQuery UI v1.10.3 で動作します

$("selector").dialog({height:'auto', width:'auto'});
于 2013-06-05T03:25:15.370 に答える
12

私はうまく機能する次のプロパティを使用しました:

$('#selector').dialog({
     minHeight: 'auto'
});
于 2012-11-06T09:13:08.077 に答える
2

高さはオート対応です。

幅はありません!

ある種の自動を行うには、表示している div のサイズを取得してから、ウィンドウを設定します。

C# コードでは..

TheDiv.Style["width"] = "200px";

    private void setWindowSize(int width, int height)
    {
        string widthScript =    "$('.dialogDiv').dialog('option', 'width', "    +   width   +");";
        string heightScript =   "$('.dialogDiv').dialog('option', 'height', "   +   height  + ");";

        ScriptManager.RegisterStartupScript(this.Page, this.GetType(),
            "scriptDOWINDOWSIZE",
            "<script type='text/javascript'>"
            + widthScript
            + heightScript +
            "</script>", false);
    }
于 2011-12-07T13:57:03.843 に答える
1
var w = $('#dialogText').text().length;

$("#dialog").dialog('option', 'width', (w * 10));

ダイアログの幅のサイズを変更するために必要なことを行いました。

于 2011-01-31T05:35:34.577 に答える