【问题标题】:audio clip.paused is undefined when using jquery使用 jquery 时未定义音频 clip.paused
【发布时间】:2014-04-13 20:37:36
【问题描述】:

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

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');">

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

有什么建议吗?

谢谢。

【问题讨论】:

    标签: javascript jquery html audio


    【解决方案1】:

    $("#" + 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();
        }
    }    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多