2016-11-04 5 views
0

タイトルがオフの場合は、どうか言いたいことは考えられません。JavaScriptの変数リストから関数を作成する関数を作成する

クロムウェブアプリを作っているし、サウンドボードです。今のオーディオを定義し、私はこの

よう
//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(); 
} 

それをやっているボタンをクリックしに耳を傾けるようになりましたこれは、すべての罰金とダンディに動作しますが、それはしかし、痛みです。これらの3つの音だけではなく、100種類以上の音があります。だから私は毎回すべてを入力しなければならない。とにかく、これを縮めることができるのは、Jqueryやその他の方法でですか?

+0

親要素のクリックハンドラを1つだけ定義し、 'event.target.id'を使用してオーディオを再生しますか? – wOxxOm

+0

クリックを探して、それを作成した要素を見つけ出し、その名前に基づいて関数をトリガするためにその名前を使用するハンドラが1つあるとしますか? @ 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を設定する方法を理解する必要があります –

関連する問題