One week ago I wrote an article about the new possibility to use the context-Parameter in conjunction with the live method (it´s in german: http://www.protofunc.com/2009/12/08/jquery-live-methode-braucht-jquery-14-eine-neue-api-fur-event-delegation/). I think we need an additional method, wich gives the developer more control over the element, to wich the eventlistener will be bound.
The current live-method, allows you to use the context-parameter, but this option doesn´t really give you the possibility to decide, to wich element(s) the listener is bound. To make this more clear. Here are some examples: 1. The following code works and the eventlistener is bound to the document $('li', $('#nav')).live('click'.... 2. The following code works, as long as #nav is available, and the eventlistener is bound to the #nav-element (very error-prone) $('li', $('#nav')[0]).live('click'.... If you have several elements, to wich the element should be bound, jQuery doesn´t give you a straight forward method to do this: 1. The eventlistener is bound to the document $('div.teaser', $('div.teaser-wrapper')).live('click' 2. The following code would be invalid $( 'div.teaser', $('div.teaser-wrapper').get() ).live('click' I came up with a very simple and short plugin, wich looks like this: (function($){ var dummy = $([]); $.each({addLive: 'live', removeLive: 'die'}, function(name, jMethod){ $.fn[name] = function(sel){ var args = (this[0]) ? Array.prototype.slice.call (arguments, 1) : []; return this.each(function(){ dummy.selector = sel; dummy.context = this; $.fn[jMethod].apply(dummy, args); }); }; }); })(jQuery); With this plugin you can write code like this: $('div.teaser-wrapper').addLive('div.teaser', 'click', function() {...}); This gives you a clear and short way to setup event delegation on specific elements. Additionally the method could improve event delegation in two ways: a) use of comma seperated selectors (buggy in jQuerys live-method): $('div.teaser-wrapper').addLive('div.teaser, div.teaser-box', 'click', function(){...}); b) add a (very) minimal performance-gain (only elements, wich are needed to setup the listener are selected) I know, that you have declined similiar suggestions in the past, but event delegation gives you a lot of options, wich can´t be controlled with the current live-method. -- You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to jquery-...@googlegroups.com. To unsubscribe from this group, send email to jquery-dev+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=en.