[jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-15 Thread stephb...@googlemail.com
 The only drawback when using the this method is that users will not be
 able to support multiple event names within the same bind call:

And as I pointed out, you can't expect this to work:

$(context).bind('a.menu:first:click.namespace', fn);

Whereas this would work, as well as allowing multiple events (and
multiple namespaces):

$(context).bind('event.namespace(selector)', fn);

--

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=.




[jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-14 Thread stephb...@googlemail.com
On Nov 13, 5:06 pm, xwisdom xwis...@gmail.com wrote:

 $(context).bind('a.menu:click', callback);


This is what the special event that I described (in a long-winded
comment) earlier does, albeit with a slightly different syntax:

$(context).bind('click', { selector: 'a.menu' }, callback);

Here, again, is the code, in case you want to try it/change it:

http://webdev.stephband.info/events/click/js/jquery.event.click.js

I'm going to have a think about your syntax suggestion.

--

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=.




[jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-14 Thread xwisdom
Here's what I would use to separate the selector from the event name:

script type=text/javascript
var sel,event = 'a.menu:click.namespace';
if (event.indexOf(':')) {
sel = event.substr(0,event.lastIndexOf(':'));
event = event.replace(sel+':','');
}

alert('selector:'+ sel + \nevent: + event);
/script

The only drawback when using the this method is that users will not be
able to support multiple event names within the same bind call:

$(context).bind('click',callback); // normal use
$(context).bind('click mouseover',callback); // multiple events
$(context).bind('a.menu:click',callback); // using event delegates -
only one event at a time

--

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=.




[jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-13 Thread xwisdom
Hi John,

After thinking about it for sometime. I really think it would be good
to have an optimized version of the live call. Here's an example of
what I'm thinking of:

$(context).bind('a.menu:click', callback);

The above would internally use the live() method to setup the click
event for every a.menu element within context

--

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=.




[jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-07 Thread stephb...@googlemail.com
To handle click delegation I took the approach of enhancing the click
event using the special events framework.  This might be a slight
tangent to this thread, but it does address many of the problems
discussed here.  Here's the code:

http://webdev.stephband.info/events/click/js/jquery.event.click.js

It allows you to bind a click as normal, but if you pass in an options
object with the properties 'selector' or 'href' the bound function
fires only when the conditions are met:

jQuery('context')
.bind('click', {
selector: 'h3'
}, handlerFunction);

will fire handlerFunction whenever an h3 (or anything inside an h3) in
'context' is clicked. Since I find 90% of my click bindings are on
links, and I'm often interested in sorting links by type, I also
provide a way to bind to links by type of href:

jQuery('context')
.bind('click', {
href: 'hash'
}, handlerFunction);

will fire handlerFunction when an anchor with href = #xxx is
clicked.  Similarily, it will take the values 'slash' ( /xxx ),
'url' ( xxx://xxx ), 'empty' ( # ), or an exact match for your href.
One more example:

jQuery('context')
.bind('click', {
selector: 'a[target=overlay]'
href: 'url'
}, handlerFunction);

will fire handlerFunction on links with target=overlay and an href
that is a full url.

It caches the results of .closest() so when the same element is
clicked twice .closest() is only run the first time.  Inside
handlerFunction, e.target is set to the selected element (even if it
was an element inside that element that was originally clicked) for
easy manipulation.

As a solution, I like it because it allows me to continue write
bindings the same way as I always have, but just enhance them with an
options object when I want delegation.  I never published it on
jQuery.com, for some reason... perhaps I never considered it entirely
finished. But I have had it working in a couple of website projects.

Cheers,
Stephen.

--

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.




[jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-07 Thread Robert Katić
I opened a ticket: http://dev.jquery.com/ticket/5470
with link on commit.

Commit also includes context inside liveHandler (it is a too small
change to make a separate commit).

Component is unfiled. Please tell me if I made mistakes opening this
ticket.

On Nov 6, 3:01 pm, John Resig jere...@gmail.com wrote:
  1. Calling closest, context argument still is not used.
  I was unable to find the proper ticket. Would I open one?

  2. Storing how much a parent is close to an element with data API is
  an big overhead. An jQuery.lastCloser or something similar would be
  enough. Also it would speed up sorting inside liveHandler with
  somethin like this:

  ...
        elems.push({ elem: elem, fn: fn, closer: jQuery.lastCloser });
  
   elems.sort(function( a, b ) {
     return a.closer - b.closer;
   });

 I'd appreciate tickets/patches for both of these - they both sound
 like great additions.

 --John

--

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.




Re: [jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-07 Thread John Resig
I've already landed the commits - looks great - thanks! (I'll close
the ticket once my network stops flaking out.)

--John



On Sat, Nov 7, 2009 at 5:47 PM, Robert Katić robert.ka...@gmail.com wrote:
 I opened a ticket: http://dev.jquery.com/ticket/5470
 with link on commit.

 Commit also includes context inside liveHandler (it is a too small
 change to make a separate commit).

 Component is unfiled. Please tell me if I made mistakes opening this
 ticket.

 On Nov 6, 3:01 pm, John Resig jere...@gmail.com wrote:
  1. Calling closest, context argument still is not used.
  I was unable to find the proper ticket. Would I open one?

  2. Storing how much a parent is close to an element with data API is
  an big overhead. An jQuery.lastCloser or something similar would be
  enough. Also it would speed up sorting inside liveHandler with
  somethin like this:

  ...
        elems.push({ elem: elem, fn: fn, closer: jQuery.lastCloser });
  
   elems.sort(function( a, b ) {
     return a.closer - b.closer;
   });

 I'd appreciate tickets/patches for both of these - they both sound
 like great additions.

 --John

 --

 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.




[jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-07 Thread Robert Katić
oops: evaluated without context

On Nov 8, 12:48 am, Robert Katić robert.ka...@gmail.com wrote:
 I detect only now that in closest method the selector is evaluated
 without selector.
 I am not sure which context is more correct: (context || this.context)
 or it have to be a document?

 PS: It is not completely clear to me why selectors with positions can
 not be handled by multiFilter in this situation.

 On Nov 7, 5:58 pm, John Resig jere...@gmail.com wrote:

  I've already landed the commits - looks great - thanks! (I'll close
  the ticket once my network stops flaking out.)

  --John

  On Sat, Nov 7, 2009 at 5:47 PM, Robert Katić robert.ka...@gmail.com wrote:
   I opened a ticket:http://dev.jquery.com/ticket/5470
   with link on commit.

   Commit also includes context inside liveHandler (it is a too small
   change to make a separate commit).

   Component is unfiled. Please tell me if I made mistakes opening this
   ticket.

   On Nov 6, 3:01 pm, John Resig jere...@gmail.com wrote:
1. Calling closest, context argument still is not used.
I was unable to find the proper ticket. Would I open one?

2. Storing how much a parent is close to an element with data API is
an big overhead. An jQuery.lastCloser or something similar would be
enough. Also it would speed up sorting inside liveHandler with
somethin like this:

...
      elems.push({ elem: elem, fn: fn, closer: jQuery.lastCloser });

 elems.sort(function( a, b ) {
   return a.closer - b.closer;
 });

   I'd appreciate tickets/patches for both of these - they both sound
   like great additions.

   --John

   --

   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 
   athttp://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.




[jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-05 Thread furf
I've also been among those clamoring for an optimized $.live method
and have a offered similar hack around in the past http://
blurf.furf.com/2009/09/jquery-live-from-new-york/ (via Paul Irish's
Anti-Patterns). Last night on the flight to jsconf, I hacked up a more
formal patch which puts optimized live and die methods into the jQuery
root and aliases them back to the jQuery instances.

http://github.com/furf/jquery-live/blob/master/jquery.live.js

Unless I'm missing something, I really haven't modified much and these
changes could be integrated into jQuery with two copies and two
pastes.

Hope that helps.

--

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.




[jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-05 Thread Robert Katić
I wonder why there would be an $.live with document as the only
interesting context.

Something like

  $(document).zombi(selector, type, ...)

would be more flexible (I know, zombi is not nice, but I have no
inspirations about a more suitable name).

To avoid to repeat selector on multiple bindings, I suggest something
like:

  $(document).make(selector)
.zombi(type, ...)
.zombi(type, ...)

An possible implementation of that: http://gist.github.com/227508

Maybe this is only a silly idea for majority of users (now), but I am
really of idea that this have even more sense then the current
$.fn.live.

On Nov 5, 2:44 am, xwisdom xwis...@gmail.com wrote:
 Hello,

 Just wondering if version 1.4 will include improvements to live()
 events.

 See example 
 here:http://www.zachleat.com/web/2009/05/08/performance-caveat-with-jquery...

--

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.




[jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-05 Thread Justin Meyer
How about $(#something).delegate(.thing,click, func).

It almost makes too much sense :).

On Nov 5, 6:31 pm, Robert Katić robert.ka...@gmail.com wrote:
 I wonder why there would be an $.live with document as the only
 interesting context.

 Something like

   $(document).zombi(selector, type, ...)

 would be more flexible (I know, zombi is not nice, but I have no
 inspirations about a more suitable name).

 To avoid to repeat selector on multiple bindings, I suggest something
 like:

   $(document).make(selector)
     .zombi(type, ...)
     .zombi(type, ...)

 An possible implementation of that:http://gist.github.com/227508

 Maybe this is only a silly idea for majority of users (now), but I am
 really of idea that this have even more sense then the current
 $.fn.live.

 On Nov 5, 2:44 am, xwisdom xwis...@gmail.com wrote:



  Hello,

  Just wondering if version 1.4 will include improvements to live()
  events.

  See example 
  here:http://www.zachleat.com/web/2009/05/08/performance-caveat-with-jquery...

--

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.




Re: [jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-05 Thread Robert Katić
Meyer, delegate was my first candidate too but I was worry that it  
was overused :). Seams that I was wrong. Will update it with  
delegate ASAP.

--Robert

On 6. stu. 2009., at 02:42, Justin Meyer justinbme...@gmail.com wrote:

 How about $(#something).delegate(.thing,click, func).

 It almost makes too much sense :).

 On Nov 5, 6:31 pm, Robert Katić robert.ka...@gmail.com wrote:
 I wonder why there would be an $.live with document as the only
 interesting context.

 Something like

   $(document).zombi(selector, type, ...)

 would be more flexible (I know, zombi is not nice, but I have no
 inspirations about a more suitable name).

 To avoid to repeat selector on multiple bindings, I suggest something
 like:

   $(document).make(selector)
 .zombi(type, ...)
 .zombi(type, ...)

 An possible implementation of that:http://gist.github.com/227508

 Maybe this is only a silly idea for majority of users (now), but I am
 really of idea that this have even more sense then the current
 $.fn.live.

 On Nov 5, 2:44 am, xwisdom xwis...@gmail.com wrote:



 Hello,

 Just wondering if version 1.4 will include improvements to live()
 events.

 See example here:http://www.zachleat.com/web/2009/05/08/ 
 performance-caveat-with-jquery...

 --

 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.




[jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-05 Thread furf
I don't think that the method name is at question here, but rather the
unnecessary performance cost of querying a selector before DOMReady
(or even after), ie. $('#anything'), when it is not needed for the
event delegation pattern. The .live method uses only the .selector
property of the jQuery instance and not the actual collection of DOM
elements, so there is no reason to query the DOM, especially before it
is even available.

Also, @robert, my solution supports the following notation, similar to
yours but using the familiar jQuery syntax (before/after DOMReady):
$.live(#mySelector, click, fn1)
  .live(#mySelector, mouseover, fn2)
  ...;

as well as (after DOMReady):
$(#mySelector).css(color, #ff)
  .live(click, fn1)
  .live(mouseover, fn2);

--

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.




Re: [jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-05 Thread John Resig
 Also, @robert, my solution supports the following notation, similar to
 yours but using the familiar jQuery syntax (before/after DOMReady):
 $.live(#mySelector, click, fn1)
  .live(#mySelector, mouseover, fn2)
  ...;

I understand the logic behind you wanting a $.live method (for the
edge cases where, presumably, you have hundreds or thousands of
elements that you're trying to match - and you don't want to run the
initial selector). Although there's a lot that I don't like about it:
 - You are now passing in a selector to a non $(...) or .foo() method.
This goes against all the conventions that the library has - when you
interact with DOM elements, stay within the jQuery set.
 - The only case where this matters is in a fringe case (namely, only
when you use both a complicated selector AND run it in IE  8, since
all other browsers are using querySelectorAll) - but the existence of
the method in jQuery would remove the need to ever use the one method
that everyone should use.
 - Presumably since you're in a situation where you're really caring
about performance - then why are you using .live to begin with?
Shouldn't you be binding lower in the document? This is why the
closest method was added, to make tasks like this even easier.

I would simply recommend: If you're in a situation where you're
starting with a critical number of elements on your page, enough to
ruin your pages' overall performance, then you should use a basic form
of event delegation, like so:

$(#someRootTable).click(function(e){
  $(e.target).closest(td.foo).each(function(){
// Your code goes here.
  });
});

Which is really what you should be doing anyway (live method or not).

--John

--

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.




Re: [jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-05 Thread Nik Pasaran
What about something like this:

$.live = function(selector, type, callback) {
$.fn.live.call({ selector: selector }, type, callback);
}


On Thu, Nov 5, 2009 at 7:13 AM, xwisdom xwis...@gmail.com wrote:
 Hi John,

 Thanks for the quick feedback

 IMO, I think it would be handy to have something like $.live as I can
 see where it would be of great benefit when working with a lot of
 elements.

 --

 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.




Re: [jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-05 Thread Robert Katić
$(#someRootTable).delegate(td.foo, click, function(e){
// Your code goes here.
});

Would be easer and safer because the event will be handlet only by  
td.foo elements inside #someRootTable.

--Robert

On 6. stu. 2009., at 04:56, John Resig jere...@gmail.com wrote:

 $(#someRootTable).click(function(e){
  $(e.target).closest(td.foo).each(function(){
// Your code goes here.
  });
 });

--

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.




Re: [jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-05 Thread John Resig
If you want to limit, just do this (using the nightlies):

$(#someRootTable).click(function(e){
  $(e.target).closest(td.foo, this).each(function(){
 // Your code goes here.
  });
});

Still pretty simple and requires no additional functionality. I may
just write this up as an example and add it to the live and closest
docs.

--John



On Fri, Nov 6, 2009 at 5:22 AM, Robert Katić robert.ka...@gmail.com wrote:
 $(#someRootTable).delegate(td.foo, click, function(e){
    // Your code goes here.
 });
 Would be easer and safer because the event will be handlet only by td.foo
 elements inside #someRootTable.

 --Robert
 On 6. stu. 2009., at 04:56, John Resig jere...@gmail.com wrote:

 $(#someRootTable).click(function(e){
  $(e.target).closest(td.foo).each(function(){
    // Your code goes here.
  });
 });

 --

 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.




Re: [jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-05 Thread Robert Katić
I suppose you will need an return false; too at the end of the  
handler...

--Robert

On 6. stu. 2009., at 05:29, John Resig jere...@gmail.com wrote:

 If you want to limit, just do this (using the nightlies):

 $(#someRootTable).click(function(e){
  $(e.target).closest(td.foo, this).each(function(){
 // Your code goes here.
  });
 });

 Still pretty simple and requires no additional functionality. I may
 just write this up as an example and add it to the live and closest
 docs.

 --John



 On Fri, Nov 6, 2009 at 5:22 AM, Robert Katić robert.ka...@gmail.com 
  wrote:
 $(#someRootTable).delegate(td.foo, click, function(e){
// Your code goes here.
 });
 Would be easer and safer because the event will be handlet only by  
 td.foo
 elements inside #someRootTable.

 --Robert
 On 6. stu. 2009., at 04:56, John Resig jere...@gmail.com wrote:

 $(#someRootTable).click(function(e){
  $(e.target).closest(td.foo).each(function(){
// Your code goes here.
  });
 });

 --

 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 
 .



--

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.




Re: [jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-05 Thread Robert Katić
No you will not. My Mistake

--Robert

On 6. stu. 2009., at 05:29, John Resig jere...@gmail.com wrote:

 If you want to limit, just do this (using the nightlies):

 $(#someRootTable).click(function(e){
  $(e.target).closest(td.foo, this).each(function(){
 // Your code goes here.
  });
 });

 Still pretty simple and requires no additional functionality. I may
 just write this up as an example and add it to the live and closest
 docs.

 --John



 On Fri, Nov 6, 2009 at 5:22 AM, Robert Katić robert.ka...@gmail.com 
  wrote:
 $(#someRootTable).delegate(td.foo, click, function(e){
// Your code goes here.
 });
 Would be easer and safer because the event will be handlet only by  
 td.foo
 elements inside #someRootTable.

 --Robert
 On 6. stu. 2009., at 04:56, John Resig jere...@gmail.com wrote:

 $(#someRootTable).click(function(e){
  $(e.target).closest(td.foo).each(function(){
// Your code goes here.
  });
 });

 --

 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 
 .



--

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.




[jquery-dev] Re: Will the live() method be improved in 1.4?

2009-11-05 Thread Robert Katić
Regarding improving live(), I would note two things about liveHandler:

1. Calling closest, context argument still is not used.
I was unable to find the proper ticket. Would I open one?

2. Storing how much a parent is close to an element with data API is
an big overhead. An jQuery.lastCloser or something similar would be
enough. Also it would speed up sorting inside liveHandler with
somethin like this:

...
   elems.push({ elem: elem, fn: fn, closer: jQuery.lastCloser });

  elems.sort(function( a, b ) {
return a.closer - b.closer;
  });

--

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.