2012-01-15 23 views
1

私が作成しているjQuery UIダイアログボックスがあります。それは空のdivとして開始され、ダイアログのopenイベントにバインドされたAjax呼び出しを介して入力されます。jQuery UI - ダイアログ - 高さ

私の問題は、ダイアログが最初に表示されるときにコンテンツがないため、その高さが非常に小さいことです。これにより、Ajaxリクエストが完了したときにダイアログが下方向に押し出され、画面から外れます。しかし、ダイアログを開くためのその後のクリックは、それが正しく再配置されるようにします。おそらく、最初のサイズ変更後に高さが更新されるでしょうか?

私の質問は、Ajaxリクエストが完了した後にダイアログをトリガして自身の位置を変更できるイベントですか?私はドキュメントを閲覧しましたが、何も見つかりませんでした。私はUIDialogのソースファイルを見ている途中ですが、私が読んでいる間にここで尋ねると思いました。

編集:ここはフィドルです。開いている関数の中にheight変数を設定してから、クリックして閉じ、再度クリックしてください。

http://jsfiddle.net/P9X9v/

+1

方法プロパティとしてのダイアログの高さ?ダイアログボックス({height:500、width:300、modal:true、and_so:on}); ' – Quasdunk

+0

@Quasdunk:ジェネリックバインディングを使用しています。 "core_dialog_trigger"は "pop- *"メタデータを持つダイアログを作成します。したがって、1)Ajaxデータの高さは測定する苦痛であり、2)システム全体のすべてのインスタンスに対してAjaxデータの高さを測定する必要があります。私はちょうど今起こっていることを正確に示すためにフィドルを投げるつもりです。 – Josh

+1

申し訳ありませんが、私はあなたのポイントを見て、私は推測:-)そして、ええ、フィドルは確かに役立つだろう! – Quasdunk

答えて

1

それはちょうど、ダイアログの位置をリセットすることは十分だったが判明:オープンイベント関数にこれを追加する

http://jsfiddle.net/P9X9v/1/

はそれを修正します。指定について

$(this).dialog("option", "position", "center");