Reputation: 11747
I have a video html5 tag embedded on page. I need to trigger an action when the user clicks the "Play Button". But I can't find how to bind that to my action. Is there an event for what I need? I'm using jQuery...
Thanks!
Upvotes: 21
Views: 44713
Reputation: 141
HTML5 Video elements have an onplay
event that you can use that doesn't require the extra step of adding a listener. This solution also doesn't require JQuery.
var myVid = document.getElementById('video');
if (myVid !== null) { // Possibility of no video loaded in DOM
myVid.onplay = function () {
//do something
};
}
MDN has full details.
Upvotes: 7
Reputation: 365
I used code from the following page and stripped it:
<script language="javascript">
document.addEventListener("DOMContentLoaded", init, false);
function init() {
var _video = document.getElementById("video");
_video.addEventListener("playing", play_clicked, false);
}
function play_clicked() {
alert("play was clicked");
}
</script>
<video id='video'
controls preload='none'
poster="http://media.w3.org/2010/05/sintel/poster.png">
<source id='mp4'
src="http://media.w3.org/2010/05/sintel/trailer.mp4"
type='video/mp4'>
<p>Your user agent does not support the HTML5 Video element.</p>
</video>
Hoped I could help.
Upvotes: 8
Reputation: 6542
Does this W3C demo page help? http://www.w3.org/2010/05/video/mediaevents.html It appears the play event is simply 'play'.
For example:
$('video').bind('play', function (e) {
// do something
});
or
$('video').on('play', function (e) {
// do something
});
Upvotes: 28