2013-05-15 4 views
0

мне нужна помощь, чтобы добавить и играть какие-то звуки, у меня есть этот код для создания некоторых звуковых элементов:JQuery добавить слушателя к элементам

 $.each(mySounds, function(i){ 
      var SoundID = 'sound_'+i; 
      $("<audio></audio>").attr({ 
       'id': SoundID, 
       'src':'wav/'+mySounds[i], 
       'volume':1, 
     }).appendTo('body'); 

Wich производит это на DOM:

<audio id="mySound_0" src="audio0.wav" volume="1"></audio> 
<audio id="mySound_1" src="audio1.wav" volume="1"></audio> 

Как я могу добавить слушателя для воспроизведения звука при вызове функции?

Я попытался это без успеха:

$.each(mySounds, function(i){ 
     var SoundID = 'sound_'+i; 
     $("<audio></audio>").attr({ 
      'id': SoundID, 
      'src':mySounds[i], 
      'volume':1, 
    }).appendTo('body').bind('playSound', function(){ 
      this.play(); 
     }); 

и назвать так:

$('#sound_1').playSound(); 

Любые идеи, как сделать работу?

ответ

1

Попробуйте

$.each(mySounds, function(i){ 
     var SoundID = 'sound_'+i; 
     $("<audio></audio>",{ 
      'id': SoundID, 
      'src':'wav/'+mySounds[i], 
      'volume':1, 
    }).appendTo('body').on('playSound', function(){ 
      this.play(); 
     }); 

Используйте Trigger для пользовательских событий

$('#sound_1').trigger('playSound'); 
1

Привязка к событию не создает новый метод для выполнения, вам нужно вместо этого инициировать событие.

$('#sound_1').trigger('playSound') 
Смежные вопросы