2011-07-25 8 views
1

次のような状況があります。マウスカーソルがコンボボックスの項目(「オプション」タグ上にある)上にあるときにカスタムテキストのツールチップを表示する必要があります。これを解決する私の最初のアイデアはタイトルタグを使用していた。 Firefoxとうまくいっていますが、IEの場合、テキストが大きすぎると切り詰められます。コンボボックスアイテムへのバインディングホバーイベントの問題

次に、divをツールチップとして使用して表示/非表示にすることを考えました。私は次のコードを作成し、それはFirefox上で動作します(入力イベントと終了イベントがトリガーされます)が、IEでは何もしません。

$(document).ready(function() { 
     var $tooltip = $("#tooltip").hide(); 
     var $options = $("#ddlSelect option"); 
     $options.each(function() { 
      var texto = $(this).attr("title"); 
      $(this).data("title", texto); 
      $(this).attr("title", ""); 
     }); 
     $options.hover(function() { 
      var texto = $(this).data("title"); 
      if (texto != "") 
       $tooltip.show().text(texto); 
     }, function() { 
      $tooltip.hide(); 
     }); 
    }); 

Obs。 "tooltip"はdivです。 "ddlSelect"はいくつかのオプションを持つコンボボックスです。すべての「オプション」にはタイトルタグが関連付けられており、カスタムテキストの最初のコンテナになります。

私はIE 8を使用しています。誰もIEがこれらのイベントをトリガーできない理由を知っていますか?

おかげ

+2

IEが動作しない理由を理解するのに役立ちます。 http://stackoverflow.com/questions/2064011/select-option-hover-is-not-working-in-ie – EnjoyTheVibez

+0

これを機能させる方法はありません。まあ、私は別の解決策を探す必要があると思う、たぶんコンビネーションを使って "div"で作られた...ありがとう! – Fabio

答えて

0

私はjQueryのUIからこの例を示唆するかもしれません:

http://jqueryui.com/demos/autocomplete/#combobox

あなたは、あなたのオプションのためのmouseoverイベントセッターを追加するプラグインコードに浸漬する必要があります。

関連する問題