3

IE 6/7/8 では<select>、定義された幅が指定されている場合、要素は一度開かれると自動的に展開されません。ブラウザーのスニッフィング (jQuery の例では and を使用する$.browser.msieことでした$.browser.version) を使用すると、現在のブラウザーをある程度確実に検出でき、関連するブラウザーに対して、選択用のカスタム ハンドラーを追加できます。

jQuery 1.9 では、$.browserオブジェクトは削除されました。私はまだ本番環境で古いバージョンを使用しており、ブラウザをスニッフィングして、それに応じて自動拡張選択メニューを表示することができます。ただし、jQuery の今後のリリースについていくつもりなら、これは長期的な解決策ではありません。

select via のプロパティを調べましたがfor(var i in document.createElement('select')) { ... }、メニューが自動的に展開されるかどうかに関して明らかなことは何もわかりません。

そのようなことはありますか?理想的には、ブラウザのスニッフィングを必要としないバニラ ソリューションを探しています。if(!property in document.createElement('select')) { ... }素晴らしいでしょう。

[編集/追加] jQueryの移行について知っており、おそらくそれが私たちを圧倒するだろうと理解しています. 私は、(現時点では) 1 つの小さな不便さのために、より多くのものをロードすることに過度に熱心ではありません。

4

1 に答える 1

0

jQuery.browserの jQuery API から:

このプロパティは使用しないことをお勧めします。代わりに機能検出を使用してみてください (jQuery.support を参照)。jQuery.browser は、jQuery の将来のリリースでプラグインに移動される可能性があります。

$.browser 機能を備えたjQuery Migrate Pluginを調べたところ、コードはgithub で入手できます

于 2013-02-14T15:35:58.397 に答える