【问题标题】:Video addEventListener of dynamically created element动态创建元素的视频 addEventListener
【发布时间】:2011-03-16 02:03:33
【问题描述】:

您知道为什么我会因此收到“无法创建 null 事件侦听器”错误:

    var my;
    my.newVidObj = document.createElement('video');
    my.newVidObj.src = "vid-source.webm";
    my.newVidObj.load();        
    my.newVidObj.addEventListener("play", function() {
        // Do something
    }, false);  

另外,有没有办法在 jquery 对象上使用视频标签方法(例如,通过 jquery 创建视频标签)?

我将以下答案编辑为正确,但需要经过同行评审。这是解决方案:

var vid = $("<video />", {
    id: "my-HTML5-video",
    src: "video.webm"
}).bind("play", function(){
    alert('test');
}).appendTo("body")[0].play();

【问题讨论】:

  • 编辑了我的答案并为自己找出大部分答案 +1 和星标;)
  • @motionman95 一个关键要点是使用 [0] 使 jQuery 选择可通过本机 javascript 方法执行。

标签: javascript jquery events html video


【解决方案1】:

查看这些链接:

http://www.chipwreck.de/blog/2010/03/01/html-5-video-dom-attributes-and-events/ http://www.dev.opera.com/articles/view/introduction-html5-video/ http://www.chipwreck.de/blog/2010/02/23/html-5-video-test-area/

我认为应该是:

var vid = $("<video />", {
    id: "my-HTML5-video",
    src: "vid-source.webm",
});

vid.appendTo("body");

vid[0].play = function(){
    alert("yaaay!");
};

OP 更正:

var vid = $("<video />", {
    id: "my-HTML5-video",
    src: "video.webm"
}).bind("play", function(){
    alert('test');
}).appendTo("body")[0].play();

【讨论】:

  • 它适用于我,但仅当我将它与play 事件一起使用时,它不适用于ended 事件...
猜你喜欢
  • 2018-01-03
  • 2019-06-15
  • 2016-10-10
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
相关资源
最近更新 更多