JSFiddle - React, Tailwind, and code Playground
JavaScript
$.createEventCapturing = (function () {
var special = $.event.special;
return function (names) {
if (!document.addEventListener) {
return;
}
if (typeof names == 'string') {
names = [names];
}
$.each(names, function (i, name) {
var handler = function (e) {
e = $.event.fix(e);
return $.event.dispatch.call(this, e);
};
special[name] = special[name] || {};
if (special[name].setup || special[name].teardown) {
return;
}
$.extend(special[name], {
setup: function () {
this.addEventListener(name, handler, true);
},
teardown: function () {
this.removeEventListener(name, handler, true);
}
});
});
};
})();
$.createEventCapturing(['ended']);
$(function() {
createAudElement();
$('body').on('ended', 'audio', onEnded);
});
function onEnded(){
alert('audio ended.');
}
function createAudElement(){
var src = 'http://upload.wikimedia.org/wikipedia/en/f/f9/Beatles_eleanor_rigby.ogg';
var aud = $("<audio></audio>").attr('controls', true).addClass('player').attr('src', src);
aud.appendTo(document.body);
setTimeout(aud[0].play.bind(aud[0]), 100);
setTimeout(function(){
aud[0].currentTime = 15;
}, 300);
}