.Change()를 사용하여 함수를 트리거하는 드롭 다운이 있습니다. 함수는 기본적으로 getJSON
을 사용하여 특정 데이터를 가져오고 그 값을 기반으로 mp3 파일에 대한 배열 문자열을 만들어야합니다.for 루프 앞에 undefined 접두어가 붙은 문자열 변수
아래 코드는 문자열을 생성하고 있지만 항상 문자열 앞에 undefined
을 붙입니다.
setTimeout
은 데이터가 수신 될 때까지 특정 지연을 제공하는 것입니다. 아래 예제에서는 정적 값을 사용하고 있으며 접두어는 여전히 undefined
입니다. 왜 내가 틀린 방식으로 변수를 정의했는지 모르겠다.
전체 예제 JSBin
$('.customSurah').change(function(){
//surahNo = $('#surah option:selected').val();
setTimeout(function(){
//countSpan = $('#surah-wrapper').children().length;
surahNo = 1;
countSpan = 7;
var i=0;
for (i = 0; i <= countSpan; i++) {
strCat += surahNo+"/"+i+".mp3,";
console.log(strCat);
}
}, 3000);
});
OUTPUT
undefined114/0.mp3,
undefined114/0.mp3,114/1.mp3,
undefined114/0.mp3,114/1.mp3,114/2.mp3,
undefined114/0.mp3,114/1.mp3,114/2.mp3,114/3.mp3,
undefined114/0.mp3,114/1.mp3,114/2.mp3,114/3.mp3,114/4.mp3,
undefined114/0.mp3,114/1.mp3,114/2.mp3,114/3.mp3,114/4.mp3,114/5.mp3,
undefined114/0.mp3,114/1.mp3,114/2.mp3,114/3.mp3,114/4.mp3,114/5.mp3,114/6.mp3,
여기서'strCat'가 정의되어 있습니까? 빈 문자열로 초기 값으로 선언하면 정상적으로 작동해야합니다. –
루프에 대해 정의 된 외부 예입니다. 전체 예제는 http://jsbin.com/nicutokago/edit?html,output – Learning