当我使用JQuery单击链接时,如何更改视频src

时间:2017-01-19 01:24:21

标签: javascript jquery html css video

我怎样才能做到这一点,当我点击链接时,它会使用jQuery更改视频的src,

因此,如果用户点击"#staff"它会改变视频src

  <ul class="nav nav-pills" >
            <li role="presentation" class="loginPills"><a id="student" href="#">Student  </a></li>
            <li role="presentation" class="loginPills"><a id="staff" href="#">Staff</a></li>
            <li role="presentation" class="loginPills"><a id="employer"href="#">Employer</a></li>
        </ul>

我的视频

<video playsinline autoplay muted loop poster="" id="bgvid">
<source src="Border-Collies.mp4" type="video/mp4" id="mp4">

我的代码(不工作)

$( document ).ready(function() {
$('#staff').on({
    'click': function(){
        $('#mp4').attr('src','The-Coast.mp4');
        $('#webm').attr('src','The-Coast.webm');
        console.log("click");
    }
});
});

谢谢!

3 个答案:

答案 0 :(得分:3)

您的代码工作正常,但根据规范,动态更改src属性不起作用。

阅读https://dev.w3.org/html5/spec-preview/the-source-element.html

  

动态修改源元素及其属性   元素已插入视频或音频元素将没有   效果。

答案 1 :(得分:1)

您只需要更改视频标记的属性而不是源标记,如下所示:

替换

$('#mp4').attr('src','The-Coast.mp4');

$('#bgvid').attr('src','The-Coast.mp4');

答案 2 :(得分:0)

如果您动态更改src代码的source,则需要在视频后调用.load()

这是一个演示。

document.getElementById('change').addEventListener('click', function(e) {
  e.preventDefault();
  document.getElementById('source').src = 'http://www.w3schools.com/html/mov_bbb.mp4';
  document.getElementById('video').load();
});
a {
  display: block;
  font-size: 2em;
}
<a href="#" id="change">click</a>

<video controls id="video">
  <source src="https://www.html5rocks.com/en/tutorials/video/basics/devstories.mp4" id="source">
</video>