2012-04-09 7 views
0

例えば 私はリンクのマウスアウトで非表示にするツールチップが必要ですが、ツールチップにマウスオーバー(両方が異なる親を持つ)でない場合:名前やアバターの友人2つの要素にマウスオーバーする方法は?

上のホバーは、私はこれをしようとすると、私たちは、Facebook上でそれを見ることができますが、毎回私は偽になる

$('a').bind('mouseleave', function() { 
     var i = $('div.tooltip').is('hover'); 
     if(i===true){ 
     console.log('cursor over the tooltip, so dont hide'); 
     } 
     else{ 
     console.log('hide tooltip'); 
     } 
}); 

どのように私は両方の状態を確認できますか?

+1

「ホバー」の代わりに「ホバー」セレクター(セミコロン)を使用する必要があります。また、イベントオブジェクトのevent.relativeTargetプロパティを使用しようとすることができます – user907860

+0

これを確認してください、http://jqapi.com/#p=hover – Dhiraj

答えて

1

リンクと同じ親でツールチップの両方置く:

<div id="parent"> 
    <a href="link.com">link</a> 
    <div id="tooltip">tooltip</div> 
</div> 

そして、スクリプトであなただけの親にmouseleave機能に置くことができますすることができます場合は

$("#parent a").mouseenter(function(){ 
    $("#tooltip").css("display","block"); //or however you handle this 
}); 
$("#parent").mouseleave(function(){ 
    $("#tooltip").css("display","none"); 
}); 
+0

それはあまりにも簡単だろう)私はちょうど傾ける。私はあまりにも多くのリンクがあり、すべてのリンクに対して異なるデータをロードするツールチップ用のdivは1つだけです。 – Zhivago

+0

は、divは常に同じサイズですか?どのようにツールヒントを表示/非表示に扱っていますか? –

+0

これを変更できない場合は、以下のadeneoの回答を見ることをおすすめします –

1

をあなたのマークアップを変更しないで、タイムドイベントを使用して、マウスがいずれかの要素を入力したときに中断します:

Here's a FIDDLE

関連する問題