Я пытаюсь использовать функцию в JavaScript (+ JQuery), которая похожа на систему калибровки звука. Он запускается в одном частотном диапазоне, воспроизводит его, спрашивает пользователя, слышат ли они его, - затем, если он может знать самую низкую частоту своей системы, и если нет, он переходит в следующий диапазон, а затем перепроверяет и т. Д. найдена самая низкая частота.
Однако, когда я запускаю функцию, она, кажется, запускается сама в два раза чаще каждый раз. Из предупреждения testFreqNum я мог видеть первый раз, когда он добавил 1 один раз, второй раз, когда он добавил 1, затем добавил его снова, в третий раз он сделал это 4 раза, затем 8 и т. Д.
Вероятно, легко исправить ошибку - я новичок в JavaScript, так что, может быть, вы можете увидеть это сразу? Спасибо.
function testFreq(band, testType){
if (testType == 'testLow') {
$('#calibrationText').html('<h5>Testing ' + freqs[band] + 'Hz...</h>');
playSound('Tones', band);
//window.setTimeout(function(){
$('#calibrationText').html('<h5>Could you hear ' + freqs[band] + 'Hz clearly?</h>');
$('#yes').fadeIn(500).click(function(){
bandMin = band;//sets randGen's min availible band value
testFreqNum = 31;//sets test frequency to upper high
testFreq(testFreqNum, 'testHigh');//runs calibrator again in high mode starting band 31
$('#yes').fadeOut(500);
$('#no').fadeOut(500);
});
$('#no').fadeIn(500).click(function(){
testFreqNum = testFreqNum + 1;
alert(testFreqNum);
testFreq(testFreqNum, 'testLow');//runs calibrator again in low mode
//$('#yes').fadeOut(500);
//$('#no').fadeOut(500);
});
// }, 4000);
}
... и остальные ...