Skip to content

Instantly share code, notes, and snippets.

@neocotic
Created February 6, 2014 14:25

Revisions

  1. neocotic created this gist Feb 6, 2014.
    73 changes: 73 additions & 0 deletions jquery.html5events.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,73 @@
    (function ($) {

    var html5Events = [
    'afterprint',
    'beforeprint',
    'canplay',
    'canplaythrough',
    'contextmenu',
    'drag',
    'dragend',
    'dragenter',
    'dragleave',
    'dragover',
    'dragstart',
    'drop',
    'durationchange',
    'emptied',
    'ended',
    'error',
    'formchange',
    'forminput',
    'input',
    'invalid',
    'load',
    'loadeddata',
    'loadedmetadata',
    'loadstart',
    'mousewheel',
    'pause',
    'play',
    'playing',
    'progress',
    'ratechange',
    'readystatechange',
    'resize',
    'scroll',
    'seeked',
    'seeking',
    'stalled',
    'suspend',
    'timeupdate',
    'unload',
    'volumechange',
    'waiting'
    ];

    $.each(html5Events, function (i, type) {
    var special = $.event.special[type] || {};

    if (!special.setup) {
    special.setup = function(data, namespaces, handler) {
    if (this.addEventListener) {
    this.addEventListener(type, handler, true);
    } else if (this.attachEvent) {
    this.attachEvent('on' + type, handler);
    }
    };
    }

    if (!special.tearDown) {
    special.tearDown = function(namespaces, handler) {
    if (this.removeEventListener) {
    this.removeEventListener(type, handler, true);
    } else {
    $.removeEvent(this, type, handler);
    }
    };
    }

    $.event.special[type] = special;
    });

    })(jQuery);
    69 changes: 69 additions & 0 deletions jquery2.html5events.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,69 @@
    (function ($) {

    var html5Events = [
    'afterprint',
    'beforeprint',
    'canplay',
    'canplaythrough',
    'contextmenu',
    'drag',
    'dragend',
    'dragenter',
    'dragleave',
    'dragover',
    'dragstart',
    'drop',
    'durationchange',
    'emptied',
    'ended',
    'error',
    'formchange',
    'forminput',
    'input',
    'invalid',
    'load',
    'loadeddata',
    'loadedmetadata',
    'loadstart',
    'mousewheel',
    'pause',
    'play',
    'playing',
    'progress',
    'ratechange',
    'readystatechange',
    'resize',
    'scroll',
    'seeked',
    'seeking',
    'stalled',
    'suspend',
    'timeupdate',
    'unload',
    'volumechange',
    'waiting'
    ];

    $.each(html5Events, function (i, type) {
    var special = $.event.special[type] || {};

    if (!special.setup) {
    special.setup = function(data, namespaces, handler) {
    if (this.addEventListener) {
    this.addEventListener(type, handler, true);
    }
    };
    }

    if (!special.tearDown) {
    special.tearDown = function(namespaces, handler) {
    if (this.removeEventListener) {
    this.removeEventListener(type, handler, true);
    }
    };
    }

    $.event.special[type] = special;
    });

    })(jQuery);