mousemoveイベントを集約して、コードが確実に呼び出されるようにするには、250〜300ミリ秒ごとに1回しか実行しないでください。jQuery:mousemoveイベントを頻繁に発生させない
私は、次のようなものを使用してについて考えてきましたが、より良いパターン、またはjQueryのそれは同じことを行います提供何かがあったかと思いまして:
var mousemove_timeout = null;
$('body').mousemove(function() {
if (mousemove_timeout == null) {
mousemove_timeout = window.setTimeout(myFunction, 250);
}
});
function myFunction() {
/*
* Run my code...
*/
mousemove_timeout = null;
}
EDIT:受け入れ答えしかし、この状況では完全に機能するはずですが、答えに含まれるmousestop()
機能が実際に集計の必要性をなくしていることがわかりました。この質問を読んで答えを探しているのなら、mousestopプラグインが本当に必要!
+1 - チップをありがとう!これは最高です/清潔な方法ですか?ハックのビットのようです... –
確かにそれは少しのハックです、 'window.setInterval'はこのシナリオにもっと適合します。 –
受け入れられる! - 'mousestop'関数は私が必要とするものであり、タイムアウトコードを完全になくします。本当にありがとう! –