0

mouseenterイベントに表示され、mouseoutイベントに非表示になるツールチップがあります。常にではありませんが、ツールチップの画像内でマウスを動かすと、ツールチップがちらつくことがあります。どうすればこれを防ぐことができますか?これを行うためのより良い方法はありますか?

これが私のコードです:

$('#home_pic').mouseenter(function() {
    $('#home_tip').show();
});
$('#home_pic').mouseout(function() {
    $('#home_tip').hide();
});
4

5 に答える 5

6

mouseout()の代わりにmouseleaveを使用する

$('#home_pic').mouseleave(function() {
    $('#home_tip').hide();
});

または.hoverを使用します

 $('#home_pic').hover(function() {
        $('#home_tip').hide();
    },function() {
        $('#home_tip').show();
    });
于 2012-08-04T17:50:45.360 に答える
2

このための関数を使用できますtoggle()。ブール値を受け入れて状態を設定するため、次のようになります。

$('#home_pic').on('mouseenter mouseleave', function(e) {
    $('#home_tip').toggle(e.type==='mouseenter');
});

フィドル

于 2012-08-04T18:09:07.307 に答える
0

次のように、mouseoutの代わりにmouseleaveを試してください:http: //jsfiddle.net/tncbbthositg/dWKfX/

于 2012-08-04T17:49:43.180 に答える
0

以下のように、mouseenter関数とmouseleave関数を適切な方法で記述する必要があります。

$('#home_pic').mouseenter(function() {
    $("#home_pic").show();
},mouseleave(function() {
    $("#home_pic").hide();
}));

注:コードは動作するようにテストされていません。

于 2012-08-04T17:53:39.927 に答える
0

ツールチップがホーム写真上で実行される場合は、このようなことを試すこともできます-私は非常によく似たコードを使用して、画像マップにバブルをポップアップしました

$('#research_area').mouseover(function() {
$('img#research').css('display', 'block');
runthis();
});



function runthis () {
if ( $('img#research').css('display') == 'block')  {
$('img#research').mouseleave(function() {
    $(this).css('display', 'none');
    });
}

http://www.karpresources.com/

于 2012-08-05T21:04:06.617 に答える