0

我需要一些帮助来添加和播放一些声音,我有这段代码来制作一些音频元素:

        $.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();

任何想法如何使工作?

4

2 回答 2

1

绑定事件不会为您创建新方法来执行,您需要触发事件。

$('#sound_1').trigger('playSound')
于 2013-05-15T18:43:58.270 回答
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');
于 2013-05-15T18:44:22.100 回答