我需要一些帮助来添加和播放一些声音,我有这个代码来制作一些音频元素:
$.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();
任何想法如何工作?
答案 0 :(得分:1)
绑定事件不会为您创建执行的新方法,您需要改为触发事件。
$('#sound_1').trigger('playSound')
答案 1 :(得分: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');