3

mouseoutイベントが発生する前にjQueryを一定の時間待機させる方法はありますか?

現時点では発火が早すぎるため、マウスを評価する前に500ミリ秒待つことをお勧めします。以下で使用しているコードの例。

$('.under-construction',this).bind({
    mousemove: function(e) {
        setToolTipPosition(this,e);
        css({'cursor' : 'crosshair' });
    },
    mouseover: function() {
        $c('show!');
        showUnderConstruction();
    },
    mouseout: function() {
        $c('hide!');
        hideUnderConstruction();
    },
    click: function() {
        return false;
    }
});

これを行うjQueryの方法はありますか、それとも自分で行う必要がありますか?

4

3 に答える 3

9

内部のロジックmouseoutを別の関数に分割します。でも、mouseoutこの関数を。で呼び出しますsetTimeout("myMouseOut", 500)mouseoverまた、イベントをと組み合わせてclearTimeout()、ユーザーが新しい要素に移動した場合にタイマーをリセットできます。

于 2010-02-15T16:43:33.447 に答える
5

ロジックはいつでもsetTimeout()関数でラップできます。

mouseout: function() {
  setTimeout(function(){
    $c('hide!');
    hideUnderConstruction();
  }, 500);
}
于 2010-02-15T16:41:19.287 に答える
3

hoverIntentプラグインをチェックすると、mouseenter/outの相互作用に役立ついくつかの変数を定義できます。

于 2010-02-15T16:52:42.917 に答える