2013-05-15 145 views
0

我需要一些幫助來添加和玩一些聲音,我有這樣的代碼做一些音頻元素:jQuery的添加監聽器元素

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

至極產生這對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(); 
     }); 

使用觸發自定義事件

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

綁定一個事件並不會創建一個新的方法供您執行,您需要改爲觸發該事件。

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