2016-11-04 2 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(); 
} 

Теперь это работает все хорошо и денди, но это боль в Буте. У меня более 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 –

Смежные вопросы