Skip to content

Instantly share code, notes, and snippets.

@ajpiano
Forked from jaredatron/jquery.delegate.js
Created January 29, 2010 19:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ajpiano/290029 to your computer and use it in GitHub Desktop.
Save ajpiano/290029 to your computer and use it in GitHub Desktop.
(function() {
function live(selector, context, event, data, handler){
jQuery.each(event.split(/\s+/), function(){
jQuery({length:0, selector:selector, context:context}).live(this.toString(), data, handler);
});
}
function die(selector, context, event, handler){
jQuery.each(event.split(/\s+/), function(){
jQuery({length:0, selector:selector, context:context}).die(this.toString(), handler);
});
}
// jQuery(context).delegate(selector, event, handler)
// jQuery(context).delegate(selector, event, data, handler)
// jQuery(context).delegate(selector, {event: handler})
jQuery.fn.delegate = function(selector, event, data, handler){
var context = this[0] || document;
if (handler){
live(selector, context, event, data, handler);
}else{
if (data){
live(selector, context, event, undefined, data);
}else{
for (var e in event) live(selector, context, e, undefined, event[e]);
}
}
return this;
};
// jQuery(context).undelegate(selector, event, handler)
// jQuery(context).undelegate(selector, {event: handler})
jQuery.fn.undelegate = function(selector, event, handler){
var context = this[0] || document;
if (handler){
die(selector, context, event, handler);
}else{
for (var e in event) die(selector, context, e, event[e]);
}
return this;
};
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment