setTimeout() 메소드가 포함 된 함수가 있습니다.활성 타이머 확인 (setTimeout)
저는이 기능을 호출하는 버튼이 있으므로이 버튼을 여러 번 눌러 원하는만큼이 기능을 호출 할 수 있습니다.
활성 타이머가있는이 함수의 다른 인스턴스가없는 경우에만이 함수를 실제로 실행할 수 있습니까?
setTimeout() 메소드가 포함 된 함수가 있습니다.활성 타이머 확인 (setTimeout)
저는이 기능을 호출하는 버튼이 있으므로이 버튼을 여러 번 눌러 원하는만큼이 기능을 호출 할 수 있습니다.
활성 타이머가있는이 함수의 다른 인스턴스가없는 경우에만이 함수를 실제로 실행할 수 있습니까?
이전에이 타이머를 설정했는지 여부와 여러 단추를 누른 상태에서 지속되는 범위를 가진 일종의 변수를 사용하여 활성 상태인지 여부를 추적해야합니다.
이 단추로 시작한 타이머가 아직 실행 중인지 여부를 알려주는 기본 제공 기능은 없습니다. 당신은 당신 자신을 만들어야 만합니다. 다음과 같이 작동 할 수 있습니다.
var buttonTimer;
function myButtonClick() {
if (!buttonTimer) {
buttonTimer = setTimeout(function() {
buttonTimer = null;
// put your timer code here
}, 2000);
}
}
현재 활성화 된 타이머가있는 한 버튼 클릭을 무시합니다. 실행중인 타이머가 없으면 새 타이머가 설정됩니다.
당신이 실제 타이머 ID를 추적하고 있기 때문에, 당신은 너무 같은 (예 : 정지 버튼 등) 이전 타이머를 취소하는 등의 동작을 구현하거나 취소하여 새로운 시간 간격으로 타이머를 재설정 할 수있는 자유가있다 이전 타이머를 누른 다음 새 타이머를 설정하십시오.
var Timer = function() {
var self = this;
this.running = false;
this.run = function() {
if(!self.running) {
self.running = true;
console.log('starting run');
setTimeout(function() {
self.running = false;
console.log('done running!');
}, 5000);
} else {
console.log('i was running already!');
}
}
return this;
}
var aTimer = new Timer();
을 그리고 테스트 목적으로 버튼을 추가 :
이 시도
이<button onclick="aTimer.run()">Run!</button>
가 바이올린 :
http://jsfiddle.net/kukiwon/FCuNh/ 우리에게 코드를 보여, 당신은 분명 이벤트 처리기와에 대한 뭔가를 이미 시간 초과. – adeneo