2013-11-21 3 views
0

안녕하세요, 사용자가 타이핑을 시작하면 사용자가 타이핑을 시작하고 메시지를 다시 보낼 때 메시지를 보내려고합니다 ... 사용자가 타이핑을 멈 추면 문제는 stopTyping 개 이상의 메시지를 보냅니다. 한 번 .. 내가 문제가 keyup 기능의 타이머는 것을 알아 냈 ... 그것은 ... 제 생각 엔 .. 내가이 문제 개미 도움을 주시면 감사하겠습니다 해결 어떻게재설정 설정 시간 초과 - 자바 스크립트

var typingTimer = ''; 
    var hahahehehoho = "1";    //timer identifier 
    var doneTypingInterval = 10000; //time in ms, 5 second for example 

    //on keyup, start the countdown 
    $('#messageText').keyup(function(){ 
     typingTimer = setTimeout(doneTyping, doneTypingInterval); 
    }); 

//on keydown, clear the countdown 
$('#messageText').keydown(function(){ 
    clearTimeout(typingTimer); 
if(hahahehehoho == "1"){  
    startTyping(); 
    hahahehehoho = "2"; 
} 
}); 

을 절반 방법을 재설정하지 않습니다 ... 미리 감사드립니다. :) 오, 그리고 내가 코드를 사용했던 또 하나의 것 Run javascript function when user finishes typing instead of on key up?

답변

2

그 이유는 내 것입니다. 결국 마지막 타임 아웃 만 제거합니다.

추가 :

if (typingTimer) window.clearTimeout(typingTimer);을 그 문제를 해결해야하기 전에

2

keyup 처리기에서 시간 초과를 취소해야합니다.

keyup이 키 스트로크마다 발생하므로 더 빨리 입력하면 doneTyping에 더 많은 전화를 대기 중입니다.

typingTimer = setTimeout(doneTyping, doneTypingInterval);

당신이 이전 내용을 지우지 않고, 새로운 시간 제한을 만드는 :