2016-11-04 151 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 –