Giter Club home page Giter Club logo

airportyh-bug's Introduction

This repository is a mirror of the component module airportyh/bug. It has been modified to work with NPM+Browserify. You can install it using the command npm install npmcomponent/airportyh-bug. Please do not open issues or send pull requests against this repo. If you have issues with this repo, report it to npmcomponent. Bug - Listening Device for JS Objects

A tiny Javascript library that conviniently handles event binding between objects. It works with the event apis for DOM elements, Node style event emitters api (on/removeListener), and the jQuery/Backbone style on/off api.

Install with Bower

bower install bug

Install with NPM

npm install bug

Usage

Here is an example of the usage of bug. Let's say we were to write a widget that operates on a DOM element and wants to handle click events on that element:

function Widget(elm){
  this.elm = elm
  Bug.attach(this) // attach all event handlers 
                   // defined, see below
}

Widget.prototype = {
  // the following event handler will handle all
  // "click" events to the DOM element in the "elm"
  // property
  "elm:click": function(e){
    console.log('elm was clicked!')
  },
  destroy: function(){
    Bug.detach(this) // detaches all event handlers in the
                     // specified format
  }
}

API

Bug has 2 methods:

  • attach() - attachs all event handlers specified (see below) and
  • detach() - detaches all of them.

The event handlers in your object are specified by naming the property in the format <property>:<event>. For example, the following event handler will attach to the click event of the object stored in the elm property of the object.

"button:click": function(e){
  console.log('You click me! You really click me!')
}

The button property can have the value of one of three kinds of objects

  1. a raw DOM element
  2. an object with an on(event, callback) method and an off(event, callback) method, as is the case with jQuery wrapped objects and Backbone models
  3. an object with an on(event, callback) method and a removeListener(event, callback) method, as is the case with Node event emitters

Browser Support

Tested on IE 7.0+ and Chrome, should work on all modern browsers.

airportyh-bug's People

Contributors

airportyh avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.