2011-07-05 13 views
0

jQueryを使用してテーブルセルに簡単なツールチップを作成しようとしています。
私はこのコードを書いた:テーブルセルのjQueryツールチップ

<script type="text/javascript"> 
     $(function() { 

      $(".test").bind("mouseenter", function (e) { 
       $("#ToolTipDIv").offset({ left: e.pageX, top: e.pageY }); 
       $("#ToolTipDIv").show("slow"); 
      }); 
      $(".test").bind("mouseleave", function (e) { 
       $("#ToolTipDIv").hide("slow"); 
      }); 
     }); 

    </script> 
<div id="ToolTipDIv" style="background-color: Yellow; display: none; width: 20%;"> 
     This is a text 
    </div> 
    <table class="style1" border="1"> 
     <tr> 
      <td class="test"> 
       1 
      </td> 
      <td class="test"> 
       6 
      </td> 
     </tr> 
     <tr> 
      <td class="test"> 
       2 
      </td> 
      <td class="test"> 
       7 
      </td> 
     </tr> 
     </table> 

をしかし、期待どおりに動作しません。私がマウスの上にマウスを持ってくると、ツールチップディビジョンが閉じられ、何度か開いた。
たとえば、3番目のセルのツールチップを表示したいマウスポインタを1番目と2番目のセルに移動する3番目のcell.jQueryに移動するツールチップは3回表示と非表示になります。
jsfiddle link

答えて

6

。私の提案はまず、マウスセンターなどを具体的に記述するのではなく、jqueryのホバーを使用し、プラグインの嫌疑を調べることです。あなたの問題を修正するには、ポップアップdivの位置を絶対値に設定する必要があります。

+0

私のフィドルを編集してください。 http://jsfiddle.net/DmnMQ/2/ – Shahin

+1

定義上、コードは機能しません。ただし、何かの上にマウスを置くとツールヒントが表示され、マウスが離れると消えますが、ツールチップがマウスの位置までポップアップすると、元の位置に残ることを意味します。 http://jsfiddle.net/DmnMQ/12/を作成しましたが、もしかするとjqueryツールのヒントに既存のコードを使用しようとします。 – kasdega

+0

ありがとうございます:) :)] – Shahin

1

私のアドバイスは、ツールチップがすぐに表示されますが、(ユーザーにはあまり妨害)速く消えることができるということです。だからあなたのコードは次のようになります。

$(function() { 
    $(".test").bind("mouseenter", function (e) { 
     $("#ToolTipDIv").offset({ left: e.pageX, top: e.pageY }); 
     $("#ToolTipDIv").show('normal'); 
    }); 
    $(".test").bind("mouseleave", function (e) { 
     $("#ToolTipDIv").hide(); //Note I removed 'slow' 
    }); 
}); 

そして、あなたのtooltip要素にposition: absolute;スタイルを追加します。

私はあなたのフィドルを更新しました:http://jsfiddle.net/DmnMQ/3/、それは正常に実行されています。

これが役に立ちます。乾杯する

+0

私はあなたのフィドルをチェックしました。 ツールチップがマウスの位置に表示されます。 – Shahin

+0

'mousenter'の代わりに' mousemove'を使うことができます –

-1

なぜ、あなたはもっと簡単なので、以下のリンクにあるtiptip jqueryプラグインを使用しないでください。

http://code.drewwilson.com/entry/tiptip-jquery-plugin

あなたはそうのようなスパン内のコードをラップし、プラグインは、残りの世話をさせることができます。車輪を再発明することはできません。あなたの新しいdiv要素がポップアップし、あなたのマウスは、新しいdiv要素は、あなたは、もはや古い場所でホバリングしている「中」であるときためです

<td><span class="tiptipClass" title="your tooltip text here">1</span></td> 
+0

私はツールチップのコンテンツフォームAJAXリクエストをロードしています。 – Shahin

+0

あなたはjavascript cant uを使ってスパンのタイトルを簡単に設定できますか? – Harindaka

関連する問題