Может кто-нибудь помочь мне с небольшой проблемой JavaScript setTimeout? - PullRequest
0 голосов
/ 07 сентября 2011

Я хочу сократить количество времени выполнения события и поэтому я написал что-то вроде этого:

var slow=function(method,context){
    method.id&&clearTimeout(method.id)
    method.id = setTimeout(function(){
        method.apply(context,arguments)
    }, 500)
}

window.onload=function(){
    function print(){ console.log("thanks a lot") }
    document.body.addEventListener("mousemove",function(){
        slow(print)
    }, false)
}

Если я двигаюсь слишком быстро в теле, и функция print не будет выполнена немедленно, но это не похоже на работу Может кто-нибудь помочь? Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 07 сентября 2011

Я бы посоветовал использовать плагин дроссельной заслонки Бена Алмана. Это на самом деле не требует JQuery вообще. Если у вас нет jQuery на странице, он просто добавляет себя в пространство имен Cowboy.

https://github.com/cowboy/jquery-throttle-debounce/blob/master/jquery.ba-throttle-debounce.js

В противном случае вы могли бы по крайней мере получить хорошее представление о том, как он делает это из кода здесь.

0 голосов
/ 07 сентября 2011

На первый взгляд, вы не указали параметр context в вызове slow

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...