mousemove 이벤트를 수집하는 확실한 방법을 찾기 위해 코드가 호출되도록 보장하기 위해 250-300 밀리 초마다 한 번만 호출합니다.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;
}
편집 : 허용 대답을 아래의 상황에서 완벽하게 작동 할 것입니다. 그러나 대답에서 제공되는 mousestop()
기능이 실제로 집계에 대한 필요성을 제거 했으므로이 질문을 읽고 답변을 찾으려면 mousestop 플러그인이 정말 필요한!
+1 - 팁 주셔서 감사합니다! 그래도이 방법이 가장 좋고/깨끗한가? 약간의 해킹처럼 보입니다 ... –
네, 실제로 해킹 비트입니다, 'window.setInterval'이이 시나리오에 더 적합 할 것입니다. –
수락 함 -'mousestop' 함수가 꼭 필요한 것이므로 타임 아웃 코드를 완전히 제거 할 것입니다. 정말 고마워! –