Имам html видео и искам да изпълня функция, когато видеото приключи. Опитах следното, но не получавам нищо:
$(document).ready(function(){
$("video").live("ended",function(){
alert("video ended");
});
});
Някакви идеи защо това не се задейства в края на видеоклипа или не съм предоставил достатъчно информация, за да отговоря на нещо тук?
Забележка: Използвам функция live (), а не е включена () поради необходимостта от jQuery 1.7 с този проект.
Отговори:
50 за отговор № 1За ваше удоволствие от паста и копиране решението jQuery:
<video width="320" height="240">
<source src="movie.mp4" type="video/mp4">
</video>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>/*<![CDATA[*/
$(document).ready(function(){
$("video").on("ended",function(){
console.log("Video has ended!");
});
});
/*]]>*/</script>
Заменете частта „видео“ с правилния селектор за вашето видео.
РЕДАКТИРАНЕ: Ето решението без jQuery:
<video width="320" height="240" id="video">
<source src="movie.mp4" type="video/mp4">
</video>
<script>/*<![CDATA[*/
document.getElementById("video").addEventListener("ended",function(){
console.log("Video has ended!");
}, false);
/*]]>*/</script>
12 за отговор № 2
<html>
<head>
<title></title>
<script>
function videoEnded() {
alert("video ended");
}
</script>
</head>
<body>
<video src="video/endscene.mp4" id="video" controls onended="videoEnded()">
video not supported
</video>
</body>
</html>
6 за отговор № 3
употреба onended събитие
var video = document.getElementsByTagName("video")[0];
video.onended = function(e) {
alert("video ended");
}
Прочетете повече за Всичко, което трябва да знаете за HTML5 видео и аудио
4 за отговор № 4
Ето нещо, което можете да опитате:
$(document).on("ended", "video", function (e) {
alert("video ended");
});
Казахте, че видеоклипът се вмъква динамично след DOM се зарежда. В този скрипт търсите в DOM за video
елемент и го свързва с ended
функция.
Ето документацията за .От ().
Ето въпроса за SO динамични елементи.
Надявам се това да помогне!
2 за отговор № 5
единственият начин, по който успях да работи е следният код:
$("video")[0].on("ended",function(){
console.log("Video has ended!");
});
1 за отговор № 6
Можете да използвате на място на живо. Тъй като методът се поддържа от jquery нови версии и на живо е оттеглен в новите версии.
Можете да замените кода си с това и проблемът ви ще бъде решен.
$(document).ready(function(){
$("video").on("ended",function(){
alert("video ended");
});
});