d4rkr00t / Dega

Plain JavaScript Event Delegation Library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Event delegation library on plain JavaScript.

Simple, small only 1.2kb compressed and about 620 bytes gzipped.

Tested on latest Chrome, Firefox, Safari, Opera, IE9+.

Instalation

You can use Dega as global object, AMD or CommonJS module.

Install as Bower Package:

bower install dega --save

Install as NPM Module:

npm install dega --save

Loading as CommonJS module:

Dega = require('dega');

Usage

var handler = function(e) {
    e.preventDefault();

    console.log('event');
};

// Subscribe
Dega(document).on('click', '.link', handler);

// Unsubscribe
Dega(document).off('click', '.link', handler);

Dega is a self-invoking constructor, that means you shouldn't call it with new keyword.

Dega constructor accepts 2 kind of arguments:

  1. HTMLElement
Dega(document)
  1. String — selector which will be used in document.querySelector:
Dega('.class')
Dega('#id')
Dega('tag')

Performance

Dega vs jQuery 2.1.3 comparsion — jsperf.

I don't know how long link will work, so there are some screenshots:

Chrome 42 Firefox 36 Opera 27 Safari 8

TODO

  • Remove All Events by Selector
  • Remove All Events by Type
  • Add more test cases

About

Plain JavaScript Event Delegation Library

License:MIT License


Languages

Language:JavaScript 77.5%Language:HTML 22.5%