0

IE でのドロップダウンリストの幅の記事を読みましたが、残念ながら自分のニーズに合わせることができませんでした。

新しいウィンドウで URL を開くいくつかのオプションを含む選択リストがあり、以下の jQuery を使用します。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

選択リストのオプションをリンクするためのスクリプトは次のとおりです。

<script type="text/javascript">
  $(document).ready(function() { 
  $('.openSelect').change(function(){ 
    var selectedValue=$(this).val(); 
      if (selectedValue.match(/http/)) { 
       var open = window.open($(this).val(),'_blank'); 
       if (open == null || typeof(open)=='undefined'){ 
       alert("Please turn off pop-up blocker and reload this page to visit:  " + selectedValue); 
       }
 }
});
});
</script>

私の問題は、ドロップダウン メニューの幅が IE6、7、および 8 のテーブル セルの幅によって制限されているため、最長のオプション コンテンツの幅に拡張するように何らかの方法で修正する必要があることです。唯一の制限は、上記のスクリプトを保持し、何らかの方法で変更する必要があることです。完全に変更するのではありません。

選択リストの例を次のページに示します: http://www.myairlease.com/available/available_for_lease_737

4

3 に答える 3

0

助けてくれてありがとう!!

LinkSelect プラグインを使用してみましたが、確かに何か問題があります。 http://www.givainc.com/labs/linkselect_jquery_plugin.htm#options

私の選択タグは次のとおりです

<select class="openSelect" style="width:px; color:#0066ff;">

だから私は頭の中に次のものをロードするだけです:

<script type="text/javascript" src="js/jquery.linkselect.min.js"></script>
<script type="text/javascript" src="js/jquery.bgiframe.js"></script>
<link type="text/css" href="css/jquery.linkselect.css" rel="stylesheet" media="all" />

私のスクリプトを次のように変更しますか??

<script type="text/javascript">
$(document).ready(function() { 
 $('.select.openSelect').openSelect();
  $('.openSelect').change(function(){ 
  var selectedValue=$(this).val(); 
  if (selectedValue.match(/http/)) { 
       var open = window.open($(this).val(),'_blank'); 
       if (open == null || typeof(open)=='undefined'){ 
       alert("Please turn off pop-up blocker and reload this page to visit:  " + selectedValue); 
       }
     }
  });
});
</script>

私はそれを試してみましたが、うまくいかないので、私の間違いはどこにあるのでしょうか??

ありがとう

于 2013-04-08T19:40:48.393 に答える
0

問題は、IE8 およびそれ以前のバージョンでは、オペレーティング システムに組み込まれている HTML 選択ボックス用のドロップ ボックス コントロールを使用していることです。IE9 以降を含む他のすべてのブラウザーは、選択ボックス自体をレンダリングしますが、IE6/7/8 はレンダリングしません。

これには多くの癖と制限が伴いますが、あなたが目にしている効果は最も明白なものの 1 つです。

簡単に言えば、IE8 以前では、標準の選択ボックスに選択ボックス自体よりも幅の広い文字列を強制的に表示する方法はありません。ハックな回避策がいくつかありますが、特にテーブルベースのレイアウトを扱っている場合は、うまく機能しません。

より長い答えは、これを行う必要がある場合、唯一のオプションはカスタム選択ボックス コントロールを使用することです。デフォルトの選択ボックスを独自のもので上書きする jQuery プラグインが多数あります。たくさんの選択肢があり、さまざまな機能を備えているため、特定の機能を推奨するのではなく、最高の 10 をリストするこのサイトに誘導します。少なくともそれらのいくつかが必要な方法で機能することはかなり良い賭けです.

一般に、これらは非常に使いやすく、HTML コードを変更する必要はありません。それらをアクティブにするために、ドキュメントの準備ができている関数にほんの少しの追加のjavascriptを追加します。

それが役立つことを願っています。

于 2013-04-03T20:59:19.933 に答える