2011-10-26 4 views
1

するための要素にあった場合、私はdiv要素を持っていると私はそれをマウスでポイントしたときに、私はイベントを発生します。 しかし、私はそれがカーソルがある程度の時間イベントにあった場合にのみ発射したいと思います。jqueryのイベントは、カーソルがしばらく

どのようにすればいいですか?

答えて

0

例である:

$('#yourElement').on({ 
     mouseenter: function(){ 
      clearTimeout(testTimeout);  // [1] 
      testTimeout = setTimeout(function(){ // [2] 
       ... 
      }, numberOfMiliseconds); 
     }, 
     mouseleave: function() { //[3] 
      clearTimeout(testTimeout); 
     } 
    }, '.whereIsYourElement'); 

マウスが要素に入っているときに[1]、それは前のタイムアウトを削除し、[2]もう一回それを上げます。マウスが領域[3]を離れると、タイムアウトも削除されます。 これは、マウスがしばらく入力していた場合にのみタイムアウトが実行されるという望ましい効果をもたらします。

1
  1. タイマーをセットmouseoverイベントを追加します。
  2. タイマーをキャンセルするmouseoutイベントを追加します。
  3. すると、タイマーが経過すると、あなたがやりたいものを行います。ここ
+0

また、div要素が子要素を持っている場合はjQueryのMouseEnterイベント/ mouseleaveイベントを使用することをお勧めします。あなたのdivの子供たちにマウスを動かすと、マウスオーバー/マウスアウトが発生し、あなたが望むものではない(たぶん)でしょう。 –

関連する問題