mousemoveイベントにbindした処理の実行間隔を制御する

制御するってのは言い過ぎですが、mousemoveイベントにbindした処理の実行間隔を空けたい場合、setIntervalで実行フラグのオン・オフを行い実行間隔を調整します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
(function() {
    var enableHandler = true;

    $("body").mousemove(function(e) {
        if (enableHandler) {
            // 何らかの処理
            enableHandler = false;
        }
    });

    var timer = window.setInterval(function() {
        enableHandler = true;
    }, 100);
})();

偉大なるは先人達の知恵。

参考

jQuery: Fire mousemove events less often

Comments