2013-01-25 50 views
21

के अंत में फ़ंक्शन निष्पादित करना मेरे पास एक HTML वीडियो है, और जब कोई वीडियो समाप्त होता है तो मैं फ़ंक्शन चलाने की इच्छा रखता हूं। मैं निम्नलिखित की कोशिश की है, लेकिन मैं कुछ भी नहीं मिलता है:एचटीएमएल 5 वीडियो

कोई भी विचार क्यों यह एक वीडियो के अंत में ट्रिगर नहीं कर रहा? या मैंने यहां कुछ भी जवाब देने के लिए पर्याप्त जानकारी प्रदान नहीं की है?

नोट: मैं इस परियोजना के साथ jQuery 1.7 की आवश्यकता के कारण लाइव() फ़ंक्शन का उपयोग कर रहा हूं() नहीं।

+0

.on jQuery संस्करण 1.7 में जोड़ा गया है। .live को 1.7 – ryadavilli

+0

@ryadavilli हां में बहिष्कृत किया गया था, लेकिन मेरे ज्ञान के लिए लाइव() अभी भी 1.7 में कार्य करता है? – willdanceforfun

+1

हां इसे चाहिए, इसे हटा दिया गया था और 1.9 तक नहीं हटाया गया था। मेरी टिप्पणी यह ​​सुझाव देना था कि आप अभी भी .on का उपयोग कर सकते हैं। क्योंकि इसे 1.7 में जोड़ा गया था। – ryadavilli

उत्तर

6

उपयोग onended घटना

var video = document.getElementsByTagName('video')[0]; 

video.onended = function(e) { 
    alert('video ended'); 
} 

पढ़ें के बारे में अधिक Everything you need to know about HTML5 video and audio

+0

यह बहुत अच्छा लग रहा है। कुछ उल्लेख करने में असफल रहा है कि पेज लोड होने के बाद वीडियो को डोम में लोड किया गया है, इसलिए मैं लाइव ('एंडेड') का उपयोग क्यों कर रहा हूं। मुझे यकीन नहीं है कि अगर मैं इसके कारण आपके फ़ंक्शन का उपयोग कर सकता हूं। – willdanceforfun

10
<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> 
+0

धन्यवाद llya Libin – Patel

+0

यह काम कर रहा है, धन्यवाद – sradha

45

अपने पेस्ट & प्रति खुशी के लिए 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 के बिना समाधान है:

$(document).on('ended', 'video', function (e) { 
    alert('video ended'); 
}); 

आपने कहा था कि वीडियो डायनामिक रूप से सम्मिलित किया जाता है:

<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>

4

यहाँ कुछ तुम कोशिश कर सकते है के बाद डोम लोड हो गया है। इस स्क्रिप्ट में, आप video तत्व के लिए DOM पर खोज करते हैं और इसे ended फ़ंक्शन से जोड़ते हैं।

यहां .on() के लिए प्रलेखन है।
यहां dynamic items के लिए SO प्रश्न है।

मुझे आशा है कि इस मदद करता है!

1

आप लाइव जगह पर उपयोग कर सकते हैं। क्योंकि विधि पर jquery नए संस्करणों द्वारा समर्थित है और लाइव को नए संस्करणों में बहिष्कृत किया गया है।

आप अपना कोड इस पर बदल सकते हैं और आपकी समस्या हल हो जाएगी।

$(document).ready(function(){ 

$('video').on('ended',function(){ 

    alert('video ended'); 

}); 

});

2

एक ही रास्ता मैं यह काम करने में कामयाब निम्नलिखित कोड है:

$('video')[0].on('ended',function(){ 
    console.log('Video has ended!'); 
});