2011-10-27 5 views
13

マウスがテーブルの先頭要素の近くにあるときに、ツールチップを追跡して表示します。これはmouseenterイベントで動作しますが、近くに来ると、mouseenterの前にツールチップを表示します。また、mouseoutの後にツールチップをテーブルヘッドから少し離れたところに置いておきたい。jQueryの要素の近くにあるマウスの機能

これは私のコードです。

$('thead').mouseenter(showtooltip); 
$('thead').mouseout(removetooltip); 

どうすればjQueryでこれを行うことができますか?

+7

すべての側面、余白とパディングのあなたのdivのマージンを与えるが、オブジェクトの一部としてカウントされますあなたが実際にdivを入力する前に。 – Ryan

+1

または、ターゲットdivの上に配置された大きな透明divを作成し、この不可視divにイベントハンドラを設定します。 – nrabinowitz

+0

ryanOptiniありがとうございます。私はテーブルの頭のためにそれをしたい。 divのためではありません –

答えて

26

これは機能します。最初のパラメータは任意のjQueryオブジェクトです。 2番目のパラメータはオブジェクトへの近さです。この場合は20pxです。

デモ:http://jsfiddle.net/ThinkingStiff/Lpg8x/

スクリプト:マージンの上に、マウス、あなたがツールチップが表示されますので、もし

$('body').mousemove(function(event) { 

    if(isNear($('thead'), 20, event)) { 
     //show your tooltip here 
    } else { 
     //hide it here 
    }; 

});   

function isNear(element, distance, event) { 

    var left = element.offset().left - distance, 
     top = element.offset().top - distance, 
     right = left + element.width() + 2*distance, 
     bottom = top + element.height() + 2*distance, 
     x = event.pageX, 
     y = event.pageY; 

    return (x > left && x < right && y > top && y < bottom); 

}; 
+1

このソリューションはかなりCPU重いようです – medonja

関連する問題