2017-04-24 1 views
0

이전에 인라인 oncanplay 스크립트가있는 동적으로 추가 된 비디오 요소가 있습니다.jQuery로 html5 비디오 canplay 이벤트

<video id="videoCurrent" type="video/mp4" oncanplay="displayVideoChapters(this);" controls> 

비디오 요소는 내가 지금 스크립트에서 jQuery를 사용하여 비디오 요소에 canplay 이벤트를 첨부하려고

<div id="videoDisplay"> </div> 

<head>

$(document).ready(function() { 
    $("#videoDisplay").on('canplay', 'video#videoCurrent', function() { 
    console.log(this); 
    }); 
}); 
에 링크 된 파일 정적 사업부에 추가

그러나 아무 일도 발생하지 않습니다. 나는 다른 사건들을 시도했다. loadstart, pause, play 같은 결과가 나타납니다. mouseover은 console.log (이)를 트리거 할 수있는 유일한 이벤트입니다. 무엇을 이해하지 못합니까?

답변

0

썸네일 이미지 링크에서 동적 비디오 플레이어를 가져 오는 콜백 함수에 canplay 이벤트를 추가하여이를 해결했습니다.

$('#staticVideoPlayerContainer').on('click', 'a.videoUrl', function() { 
    $.get('url', function(data) { 
     $("#videoDisplay").html(data);     //Dynamic video player is added 
     $("#videoCurrent")[0].oncanplay = function() { //Event listener attached 
      console.log(this);       //Logs video on canplay 
     } 
    }); 
}); 
1

JQuery와는 "canplay"이벤트가 있다면 나는이 canplay 이벤트를하지만, 일반 자바 스크립트에서 W3C 학교에서 본대로 내가 모르는 :

var vid = document.getElementById("videoCurrent"); 
vid.oncanplaythrough = function() { 
    console.log("Can play through video without stopping"); 
    vid.play() 
}; 

먼저의 첫 번째 조각으로 시도 할 수 있습니다 코드가 작동하는지 확인하십시오. 또한 .play() 함수는 JavaScript로 비디오를 재생하는 데 사용되는 함수입니다. 이것이 도움이되기를 바랍니다.

+0

아 맞습니다. https://api.jquery.com/category/events/는 play() 이벤트를 나열하지 않습니다. – Thomas