内部に画像を含む div があります。画像にカーソルを合わせると、画像の一部の上に絶対配置されるツールチップ div を作成します (絶対位置が重要です)。タイトルと代替テキストが含まれています。
ツールチップ ボックスにカーソルを合わせるまでは、これで問題ありません。バブルダウンせず、画像の上にカーソルを置いていないと見なされるため、ツールチップ ボックスが消えます。しかし、その後、画像を再びホバリングしていると登録され、ツールチップボックスの表示と非表示の間を行ったり来たりします。
したがって、ちらつきの問題。
ちらつきの問題についてSOにはたくさんの投稿があり、私は非常に多くの解決策を試しましたが、どれも機能していません。Mouseover/mouseout、mouseenter/mouseleave、hover、さらには live() を組み合わせて使用してみました。ツールチップをゼロから作成することから、そこに空の div を作成することに切り替えたので、問題が発生した場合にページが読み込まれたときに DOM に配置されます。私は本当にもう何をすべきかわかりません。これが現時点での私のコードです。
$("img").bind("mouseover", function() {
var pimg = $(this);
var position = pimg.position();
var top = position.top;
var left = position.left;
var title = $(this).attr('title');
var alt = $(this).attr('alt');
$('.toolTip').css({'left' : left, 'top' : top, 'width' : width}).append('<div><h3>' + title + '</h3><p>' + alt + '</p></div>');
});
$("img").bind("mouseout", function() {
$('.toolTip').empty();
});