使用jquery时,音频剪辑.paused未定义

audio clip.paused is undefined when using jquery

本文关键字:paused 未定义 音频 jquery 使用      更新时间:2023-09-26

我有一个非常简单的javascript函数来播放和暂停HTML音频文件。通过测试,我可以看出,当我使用document.getElementById时,下面的函数运行得很好,但当我尝试使用jQuery时,.paustend是未定义的。

function playAudio(audioID){
    var clip = $("#" + audioID);
    console.log(clip);
    console.log(clip.paused);
    if (clip.paused){
        clip.play();
    }
    else{
        clip.pause();
    }
}

这是通过onclick调用调用的:

<img src="media/play.png" class="play" onclick="playAudio('audio1');">

当我记录剪辑时,它会返回正确的音频文件。但当我尝试记录暂停是真是假时,控制台会说它是未定义的。

有什么建议吗?

谢谢。

$("#" + audioID)不像document.getElementById那样为您提供音频元素,它为您提供了一个封装音频元素的jQuery对象
如果你想访问音频元素的属性,你必须从jQuery对象中公开它
要从jQuery对象公开属性,可以使用.prop()if (clip.prop('paused')){),也可以使用.get()[] 公开元素本身

function playAudio(audioID){
    var clip = $("#" + audioID);
    console.log(clip[0]);
    console.log(clip.prop('paused'));
    if (clip.prop('paused')){
        clip[0].play();
    }
    else{
        clip.get(0).pause();
    }
}