this online keyboard에 일부 키를 '재생'하기 위해 JavaScript를 사용하여 키를 '클릭'하는 스크립트를 작성하려고했습니다.자바 스크립트 지연 후 피아노 키 연주하기
코드
//sample array to iterate over
var keys_ = ['et', 'dst', 'et', 'dst', 'et', 'b', 'dt', 'ct', 'a', ...];
//handles the clicking only
function playKey(id_) {
key_ = document.getElementById(id_);
key_.click(); }
//iterates over the array
function playKeys(keys_) {
delay = 1000;
for (i = 0; i < keys_.length; i++) {
console.log(delay);
key_ = keys_[i];
console.log(key_);
window.setTimeout('playKey(key_)', delay);
delay += 1000;
}
}
출력 콘솔은 다음과 같은 오류가 발생합니다
: 당신이 볼 수 있듯이
1000
et
2000
dst
...
9000
a
undefined
Uncaught TypeError: Cannot read property 'style' of null p-ano.html:142
8 Uncaught TypeError: Cannot call method 'click' of null
에서, delay
및 key_
값이 완벽하게 정확합니다. 하지만 여전히 이것을 실행하면 1 초 후에 (즉, 번 타임 아웃) 모든 키가 한 번에 재생 된 것처럼 보이고 아무 일도 일어나지 않습니다.
내가 뭘 잘못하고 있니?
P.S는 : 나는 당신이 실행중인 정확히 무엇을 당신이 게시 한 코드를 가정하고 this one 같은 다른 질문을 보았고 아무 소용이
할당 전에 'var'을 추가했습니다. 감사. –
왜, 할당 전에 'var' _required_가 아닌가요? 콘솔에서 실행할 때처럼 병렬 할당을 허용하기 위해 출력이 달라집니다. –
그리고 세미콜론, 코드 가독성 (또는 오히려 코드 _validity_)이 중요하다는 것을 기억합니다 ... –