0

jquery uiダイアログにフッターを追加しています。フッターのスタイルはヘッダーと同じです。つまり、下部に固定されているため、スクロールがある場合、コンテンツはフッターを下部に移動しません。

問題は、ダイアログにフッターhtmlを追加しているため、ダイアログが自動的に計算する高さが間違っていることです。これは、高さを計算した後だと推測しているため、フッターはテキストコンテンツの前にあります。

だから私はやっている:

var footer = "<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix" ... ";

$("#popup").dialog({
   modal: true,
   autoOpen: false,
   auto: true
}).parent().append(footer);

// if condition here
$("#popup").dialog("open");

そこで、ヘッダーのスタイルをフッターにコピーしました。

chrome/firefox では、このオプションをダイアログに追加して、高さを 20px 調整し、問題を修正しました。

$("#popup").dialog({
 modal: true,
 autoOpen: false,
 auto: true,
 open = function() {
   $("#popup").css('height', $("#popup").height() + 20);
  }

});

理想的には、高さを計算する前にダイアログにフッターのコンテンツを追加するか、何らかの方法で高さを再計算するように指示します。

問題は、.dialog を呼び出すと、すべての html/css/styling が要素 #popup に追加され、(高さを計算する) 呼び出しの後、append 呼び出しをチェーンしますが、その時までには手遅れです。

これをどうにか修正できますか?繰り返しますが、IE で動作する必要があります。

4

1 に答える 1

3

createの代わりに メソッドを使用しopenます。これを行うと、これは Chrome と IE 7 - 9 でうまく機能します。

- http://jsfiddle.net/tj_vantoll/PUttC/ .

于 2012-07-13T20:08:32.207 に答える