2016-11-04 192 views
0

如果標題關閉,我很抱歉,我不可能想到如何將它改名。創建一個函數,用Javascript中的變量列表創建一個函數

我正在製作一個chrome網絡應用程序,它是一個完善的電路板。眼下定義音頻和聽按鈕點擊我已經做了這樣的

//Variables for creating audio loads// 
var heyboosong = new Audio(); 
var ricksong = new Audio(); 
var rapgod = new Audio(); 

//stopfunction has a button on the html that goes and will pause the sound playing. right now it's a list of every sound. I need to change it to just pause anything that plays// 

function stopmusic() { 
    heyboosong.pause(); 
    ricksong.pause(); 
    rapgod.pause(); 
//audio functions to listen to the buttons and make sure they are clicked, if so then wohoo sound// 

function myboo() { 
    heyboosong.src = "mp3/myboo.mp3"; 
    heyboosong.play(); 
} 
document.getElementById('myboobutton').addEventListener('click', myboo); 

    function rickplay() { 
    ricksong.src = "mp3/rick.mp3"; 
    ricksong.play(); 
} 
document.getElementById('rickbutton').addEventListener('click', rickplay); 

function rapgodplay() { 
    rapgod.src = "mp3/rapgod.mp3"; 
    rapgod.play(); 
} 

現在這個工程的所有罰款和花花公子,但它在但疼痛。我有超過100種不同的聲音,不僅僅是這三種聲音。所以我必須每次輸入所有內容。無論如何,我可以用Jquery或其他方法來壓縮這個問題嗎?

+0

爲父元素定義一個點擊處理程序並使用'event.target.id'來播放音頻? – wOxxOm

+0

因此,有一個處理程序查找點擊並找出哪個元素創建它並使用它的名稱來觸發基於它的名稱的函數? @wOxxOm –

+0

您標記了jquery,所以您正在使用jquery –

回答

1

我不知道它是否會起作用,但它會給你一些想法。如果您可以將歌曲標題存儲在變量中,我認爲它會起作用。

var mySong = new Audio(); 

function stopmusic() { 
    mySong.pause(); 
} 

function getSong(title) { 
    mySong.src = "mp3/"+ title +".mp3"; 
    mySong.play(); 
} 

document.getElementById(title+'button').addEventListener('click', title); 
+0

我喜歡。我只需要弄清楚我將如何設置標題@ coriano35 –