Login
Sign In or Register
Avatar
Not Registered Yet?

Join Now! It's FREE. Get full access and benefit from this site

Reset My password - Remind Me My username

Username
Password
Remember Me

JavaScript from Null: Cross-Browser Event Binding

Friday, 27 August 2010 12:29 PDFPrintE-mail

In chapter five of this series, we jumped into the muddy world of event listeners. In that episode, we only got our feet wet; however, today, we’ll take things a step further as we implement a far more efficient solution. Along the way, we’ll learn a plethora of new techniques. As with every JavaScript from [...]


In chapter five of this series, we jumped into the muddy world of event listeners. In that episode, we only got our feet wet; however, today, we’ll take things a step further as we implement a far more efficient solution. Along the way, we’ll learn a plethora of new techniques.

As with every JavaScript from Null screencast, it’s not essential that you view the previous entries in the series before watching.

Catch Up


Chapter 6: Cross-Browser Event Binding

Premium Members: Download this Video ( Must be logged in)

Our Final Code

var addEvent = (function( window, document ) {
	if ( document.addEventListener ) {
		return function( elem, type, cb ) {
			if ( elem && !elem.length ) {
				elem.addEventListener(type, cb, false );
			}
			else if ( elem && elem.length ) {
				var len = elem.length;
				for ( var i = 0; i < len; i++ ) {
					addEvent( elem[i], type, cb );
				}
			}
		};
	}
	else if ( document.attachEvent ) {
		return function ( elem, type, cb ) {
			if ( elem && !elem.length ) {
				elem.attachEvent( 'on' + type, function() { return cb.call(elem) } );
			}
			else if ( elem.length ) {
				var len = elem.length;
				for ( var i = 0; i < len; i++ ) {
					addEvent( elem[i], type, cb );
				}
			}
		};
	}
})( this, document );

// Example Usage
var lis = document.getElementsByTagName('li');
addEvent( lis, 'click', function() {
	this.style.border = '1px solid red';

});

Posted: 2010-08-27 12:29:11

Read Full Article

Related Articles

Newer news items:
Older news items:

Sponsers

Follow us on!

  • Facebook Page: 55916823107
  • Twitter: edesignerz

Links