私は、サウンドキャリブレーターシステムのようなJavaScript(+ JQuery)の関数を使用しようとしています。 1つの周波数帯から始まり、聞くことができるかどうかをユーザーに尋ねる。それからシステムの最低周波数を知ることができるかどうかを判断し、そうでない場合は、次の帯域まで上昇し、最低周波数が見つかる。毎回JavaScript関数が2回繰り返してループします
しかし、私がこの関数を実行すると、毎回2回何回も実行されているようです。 testFreqNumアラートから初めて1回追加、2回目の追加、3回目の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);
}
...残り...あなたはそれを変更したい場合は、このように、ちょうど.unbind()
まず、各時間追加クリックハンドラをバインドしている