第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用 for 循環(huán)為音頻文件創(chuàng)建動(dòng)態(tài) URL?Javascript

如何使用 for 循環(huán)為音頻文件創(chuàng)建動(dòng)態(tài) URL?Javascript

臨摹微笑 2023-04-27 15:26:36
我最近開始學(xué)習(xí)編碼,但我對(duì)這種自我挑戰(zhàn)感到困惑。我的目的是使用 for 循環(huán)循環(huán)遍歷包含代表按鈕的顏色名稱的數(shù)組,以創(chuàng)建指向音頻文件的動(dòng)態(tài) URL,而不是將音頻文件的 URL 單獨(dú)添加到每個(gè)按鈕。作為新手,這段代碼對(duì)我來說很有意義,但它不起作用。使用瀏覽器“檢查”工具,我注意到輸出buttonColours[i]為undefined。請(qǐng)幫助我了解原因!var buttonColours = ["red","blue","green","yellow"];var sounds = [];for (var i = 0; i < buttonColours.length; i++){    $("."+buttonColours[i]+"").click(function(event){        // Add sound when button is clicked        sounds[i]= new Audio("sounds/"+buttonColours[i]+".mp3");        sounds[i].play();        // Add CSS class when button is clicked        $(".red").addClass("pressed");        setTimeout(function(){            $(".red").removeClass("pressed");        }, 200);    });}
查看完整描述

2 回答

?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

解決此問題的另一種方法是使用letinstead of var. let在循環(huán)范圍內(nèi)創(chuàng)建一個(gè)變量,其中var將是一個(gè)全局變量,它將在每次迭代時(shí)被覆蓋。這意味著let您不會(huì)覆蓋該值,而是在每次迭代時(shí)創(chuàng)建一個(gè)新值,因此引用保持不變。


var buttonColours = ["red","blue","green","yellow"];

var sounds = [];


// Notice let i instead of var i.

for (let i = 0; i < buttonColours.length; i++) {


? $("." + buttonColours[i]).click(function(event) {


? ? // Add sound when button is clicked

? ? sounds[i] = new Audio("sounds/" + buttonColours[i] + ".mp3");

? ? sounds[i].play();


? ? // Add CSS class when button is clicked

? ? $(".red").addClass("pressed");

? ? setTimeout(function() {

? ? ? $(".red").removeClass("pressed");

? ? }, 200);

? });

}


查看完整回答
反對(duì) 回復(fù) 2023-04-27
?
qq_笑_17

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊

由于點(diǎn)擊函數(shù)是一個(gè)回調(diào),變量 i 可能在回調(diào)發(fā)生之前已經(jīng)改變。所以你必須將 i 的值綁定到函數(shù)。試試這個(gè):


var buttonColours = ["red", "blue", "green", "yellow"];

var sounds = [];


for (var i = 0; i < buttonColours.length; i++) {


? $("." + buttonColours[i] + "").click(function(i, event) { // OBSERVE i have added i as a parameter


? ? // Add sound when button is clicked

? ? sounds[i] = new Audio("sounds/" + buttonColours[i] + ".mp3");

? ? sounds[i].play();


? ? // Add CSS class when button is clicked

? ? $(".red").addClass("pressed");

? ? setTimeout(function() {

? ? ? $(".red").removeClass("pressed");

? ? }, 200);

? }.bind(this, i)); // OBSERVE I have added an i here


}

您在代碼中遇到的另一個(gè)問題是您尚未初始化聲音數(shù)組。我不認(rèn)為它會(huì)出錯(cuò),所以我沒有更正它。

查看完整回答
反對(duì) 回復(fù) 2023-04-27
  • 2 回答
  • 0 關(guān)注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)