1

マウスのホバーをキャプチャして(しばらくの間)イベントを維持する方法はありますが、マウスが要素を通過している場合はそうではありません。そのため、イベントは、ホバーして滞在したときにのみ発生します。

4

5 に答える 5

1

setTimeout必要なコードを実行する前に遅延を作成しclearTimeout、マウスが要素を離れたときにタイマーをキャンセルするために使用できます。

var timer;
$("#example").mouseover(function() {
    timer = setTimeout(function() {
       console.log("time passed");
    }, 1000); 
}).mouseout(function() {
    clearTimeout(timer);  
});

上記の実例を次に示します。

于 2011-10-06T13:44:43.880 に答える
0

はい、プラグインがあります。私はほとんどすべてのホバーコードでそれを使用しています:

于 2011-10-06T13:44:09.177 に答える
0

このためだけに設計されたhoverIntentプラグインがあります。

于 2011-10-06T13:44:55.440 に答える
0

javascriptタイマーの使用を調べ、マウスオーバーするとカウントを開始します。マウスが離れたら、タイマーを停止します。タイマーはイベントをトリガーできます。マウスのオフ/リーブが発生しない場合、タイマーはホバー/ステイ機能をオフにします。

おそらくこれにもJQueryプラグインがあります。

于 2011-10-06T13:47:08.173 に答える
0

mouseenterで、500ms後にタイマーが開始します。yourFunctionが呼び出さ
れます。ユーザーが遅延する前に離れると、タイマーがクリアされるため、関数は呼び出されません。

yourElement.live({
    mouseenter: function() {
        t=setTimeout(function(){ yourFunction() }, 500); 
    }, mouseleave: function() {
        clearTimeout(t);
    }
});

この助けを願っています:)

于 2011-10-06T14:03:35.363 に答える