如何使用jQuery访问HTML5视频方法?

JMa*_*Man 7 jquery html5

我正在编写一个HTML5应用程序,我正在尝试访问本机视频方法(播放,暂停等...)并使用jQuery.我不想使用任何其他插件.

var movie = $('#video_with_controls');

$('#buttonX').click(function() {
            movie.play();
      });
Run Code Online (Sandbox Code Playgroud)

但是当我执行上面的代码时,我收到以下控制台错误消息:

Object has no method 'play'
Run Code Online (Sandbox Code Playgroud)

我该如何解决?谢谢.

Moh*_*sen 13

HTML5视频DOM元素确实有.play()方法.jQuery中没有play方法.你正在做错的是从一个返回元素数组的jQuery选择器中激活游戏.

例如,$('#clip')返回[<video width=?"390" id=?"clip" controls>?…?</video>?]实际上是一个DOM元素的数组.要访问实际的DOM元素,您需要通过执行类似操作来解决其中一个数组元素$('#clip')[0].现在您可以将此DOM元素告诉PLAY.

所以这样做:

var movie = $('#video_with_controls');

$('#buttonX').click(function() {
            movie[0].play();  //Select a DOM ELEMENT!
      });
Run Code Online (Sandbox Code Playgroud)

这是我的例子:

HTML:

 <video width="390" id="clip" controls="">
                    <source src="http://slides.html5rocks.com/src/chrome_japan.webm" type="video/webm; codecs=&quot;vp8, vorbis&quot;">                
                  </video>
        <input type="button" id="play" value="PLAY" />
Run Code Online (Sandbox Code Playgroud)

jQuery的

$('#play').click(function(){
    $('#clip')[0].play()
});
Run Code Online (Sandbox Code Playgroud)

这有效:http://jsbin.com/erekal/3