I actually landed your recommended change just now: http://github.com/jquery/jquery/commit/199a721103b17c18dea7a9abaeb79866ef4a7f51
--John On Fri, Jan 15, 2010 at 2:00 PM, Justin Meyer <justinbme...@gmail.com> wrote: > I found another way of doing it that is rather sneaky. Maybe someone > else will find it useful. I pull out liveHandler and make my own > live.add function. > > var liveHandler = null; > (function(){ > var add = jQuery.event.add; > jQuery.event.add = function(el, event, handler, data){ > if(data.selector == "stealing" && !event) > liveHandler = handler; > else > add.apply(this, arguments) > } > var f = function(){}, d = {selector: "stealing"} > jQuery.event.add(document, "live",f,d); > jQuery.event.remove(document, "live",f,d); > jQuery.event.add = add; > })(); > > > //hack live to provide what we need > jQuery.event.special.live.add = function( proxy, data, namespaces, > live ) { > jQuery.extend( proxy, data || {} ); > proxy.guid += data.selector + data.live; > data.liveProxy = proxy; > jQuery.event.add( this, data.live, > liveHandler, data ); > > } > > > On Jan 13, 11:40 pm, Justin Meyer <justinbme...@gmail.com> wrote: >> I'm trying to implement drag-drop for live events: >> >> $(".handle").live("dropped", func1); >> $(".drop").live("dropon", func2); >> >> I'm unable to get it working without needing to change jQuery, but not >> significantly. Are these types of patches still going to be accepted? >> >> The problem is that an efficient drag plugin works differently than >> submit / change. It's not just filtering other events. Instead it's >> setting up a variety of events on elements other then the element >> being delegated on, and modifying the element. >> >> Here's my method: >> >> 1. when event.special[dragstart|dragend|dragging].setup is called, >> save a reference to your callback on the delegated element's data >> >> 2. if you are the first event listening for a given selector, >> delegate on mousedown for that selector >> >> 3. When mousedown is called, listen on the document for mousemove and >> mouseup >> >> 4. On mousemove, call dragging handlers for the current selector, >> update the position of the draggable. >> >> 5. On mouseup, call dragend handlers for the current selector. >> >> The problem is that I can't get the original event handler passed into >> live (the proxy). Can special.live.add add the proxy into the >> liveHandler data? >> >> data.liveProxy = proxy; >> >> This is a very minor change, but will allow for a lot of special live >> events. Thanks. > > -- > 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. > > > >
-- 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.