2

jQuery UIのオートコンプリート機能をアタッチするテキストボックスがあり、CSSを使用して、ここの例で最大の高さを指定しています。私の問題は、これを行うと、bgiframeが解決するz-indexの問題が再び発生することですが、その方法は異なります。最初のオートコンプリートメニューは、その下にあるすべてのコントロールの上にありますが、スクロールを開始すると、オートコンプリートメニューがそれらの後ろに表示されます。

助言がありますか?

編集:

これは純粋にIE6のバグです。

代替テキスト

代替テキスト

ご覧のとおり、下にスクロールすると、オートコンプリートは他のコントロールよりも遅れます。

4

4 に答える 4

2

次の行でoffsetHeightscrollHeightに置き換えることで問題を解決できました(jquery.bgiframe.jsから):

height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+

この変更により、垂直スクロールバーによるオートコンプリート フィールドのバグが解決されました。他の種類のダイアログでは回帰を見つけることができませんでした (ただし、詳細なテストは実行していません)。

于 2011-01-28T12:10:07.760 に答える
0

私は次のように高さの両方のパラメータの組み合わせを使用しました:

'height:'+(s.height=='auto'?'expression(Math.max(this.parentNode.offsetHeight,this.parentNode.scrollHeight)+\'px\')':prop(s.height))+';'

max関数を見てください。今ではスクロールバーがなくても問題ありません(短いリストと長いリストも同様です)

そして今、オートコンプリートコンポーネントはIE6で完璧に見えます。

于 2012-12-01T11:01:26.057 に答える
0

Siggen が言うように、offsetHeight を scrollHeight に変更できますが、オートコンプリートから返される結果が 1 つしかない場合に問題が発生しました。1 の結果は、高さ 2 ピクセルしかないウィンドウに押しつぶされます。しかし、私は修正を見つけました。data.length<2 の場合は、scrollHeight ではなく、offsetHeight を使用する必要があります。

autocomplete.js を変更する必要があります。

Locate this code:
if($.fn.bgiframe)list.bgiframe();

そして、これにします:

if($.fn.bgiframe){
    if(data.length<2)
       list.bgiframe({height:'expression(this.parentNode.offsetHeight+\'px\')'});
    else 
       list.bgiframe();
}

このコードは、Siggen の修正と組み合わせて使用​​する必要があることに注意してください。

于 2011-03-28T15:07:24.283 に答える
0

JavaScript を使用して、フォーム要素 (またはそのコンテナー) の z-index の順序を逆にする必要があります。つまり、「Social Worker」の z-index が最も低く、「DX Code」が最も高い z-index です。

于 2011-01-24T22:27:33.917 に答える