4

jQuery タブ内にフォームがあります。簡単な方法でタブを作成します。

$("#tabs").tabs({selected: 1});

選択されたインデックス 1 は、フォームが配置されるタブです。問題は、IE6 を搭載したリモート コンピューターで、ドロップダウン矢印をクリックすると、オプションのリストではなく、両方の選択で小さな空白行のみが表示されることです。

間違ったドロップダウン http://queen3.at.tut.by/DropDownIE6jQuery.PNG

オプションはページソースにあり、実際にはすべてが他のマシン、他のブラウザー、IE6 (私は IETester を使用しています) でも動作します。

私が

  • タブの作成を削除します。つまり、.tabs() - オプションが表示され、機能します。また
  • 最初にフォームのないタブ (タブ 0) を選択し、それをクリックします。オプションが表示され、機能します。
    • クリック時のみ。タブ作成後のプログラムによる .tabs("select", 1) は役に立たない

誰がこれを引き起こす可能性があるか知っていますか? それはIE6のバグですか、それともスクリプトの何かですか?

更新: うーん、これのおかげで、CSS に問題があることがわかりました - Site.css を無効にすると動作します。スクリプトだけを考えました。まだそれが何であるかを見つけなければなりません。

更新: OK、これは次の CSS ルールが原因でした:

body { font-size: 0.7em; }

0.8 以上を設定すると動作しますが、0.7 以下の場合、IE6 は示されたバグを実行します。

誰かがこれを説明できますか?はい、それはIE6です-定義上奇妙ですが、これは私の意見では奇妙すぎます。

4

2 に答える 2

0

また、この正確な問題に遭遇しました。本文のフォントサイズを変更しても修正できませんでしたが、dev.jqueryui.comで説明されている(わずかに変更された)「醜いハック」メソッドを使用して問題を回避できました。 / ticket / 4734リンク、CiscoIPPhoneによって投稿:

// Ugly hack to switch tabs in IE6, fixing select menu bug.
  if($.browser.msie && $.browser.version.substr(0, 1) <= 6) {
    $("#tabs").tabs({ selected: 1 }); 
    setTimeout(function() {
       $("#tabs").tabs("select", 0);
    }, 10);
  }

タイムアウトがこのバグを回避するための鍵であるかのようです。

于 2010-10-25T19:51:36.617 に答える
0

この回避策により、一部のマシンでは問題が修正されましたが、他のマシンでは修正されなかったことがわかりました。

私の解決策は、最初はスタイルシートですべての選択要素を非表示にし、呼び出した後$( "#tabs" ).tabs()$('select').show()それらを表示することでした。

それは私のためにそれを修正しました。

于 2012-07-31T11:31:32.430 に答える