質問

マウスアウトイベントが発生する前に、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の方法はありますか私はそれを自分で行う必要があります?

役に立ちましたか?

解決

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

他のヒント

あなたは常にsetTimeout()機能であなたのロジックをラップできます。

mouseout: function() {
  setTimeout(function(){
    $c('hide!');
    hideUnderConstruction();
  }, 500);
}

あなたは hoverIntentプラグインのは、あなたには、いくつかのVARSを定義することができますチェックアウトするかもしれませんMouseEnter /アウトの相互作用を助ける

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top