Ticket #3980 (closed enhancement: invalid)
.live() delegation can be friendly if it mimics the the propagation order
| Reported by: | iraebrasil | Owned by: | iraebrasil |
|---|---|---|---|
| Priority: | low | Milestone: | |
| Component: | event | Version: | 1.3.1 |
| Keywords: | live, delegation, order | Cc: | |
| Blocking: | Blocked by: |
Description
As discussed in the jquery-dev list on the topic: http://groups.google.com/group/jquery-dev/browse_thread/thread/d2900793205d58e/7d034f723cf8588c?hl=en&
I believe that the overhead is minimal in the proposed attached patch.
I've made a test case and also an unit test proposal.
1.3.1: http://irae.pro.br/jquerytests/live.simulate.propagation-patched.html
1.3.1 with patch: http://irae.pro.br/jquerytests/live.simulate.propagation-patched.html
Attachments
Change History
comment:1 in reply to: ↑ description Changed 4 years ago by iraebrasil
Changed 4 years ago by iraebrasil
-
attachment
live_ordering.diff
added
sort live handlers to mimic natural propagation
comment:2 Changed 4 years ago by john
- Status changed from new to closed
- Resolution set to fixed
Fixed in SVN rev [6192].
comment:3 Changed 4 years ago by rajiv@…
- Status changed from closed to reopened
- Resolution fixed deleted
The solution does not seem to work if the element uses .live() handler and parent using regular .click() handler. Try the following test case.
// in testD <a> is bound without live
$(function(){
$('#testD li').click(function(event){
$(this).css(
'background-color',
($(this).css('background-color')==='rgb(255, 192, 203)'?'red':'rgb(255, 192, 203)')
);
});
$('#testD a').live("click", function(event){
$(this).css(
'background-color',
($(this).css('background-color')==='rgb(255, 255, 255)'?'silver':'rgb(255, 255, 255)')
);
return false;
});
});
comment:5 Changed 3 years ago by rwaldron
- Owner set to iraebrasil
- Status changed from new to pending
Thanks for taking the time to contribute to the jQuery project! Please provide a reduced jsFiddle test case to help us assess your ticket!
Additionally, test against the jQuery 0 GIT version to ensure the issue still exists. Be Excellent to eachother!
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.

Ooops,
This is with 1.3.1: http://irae.pro.br/jquerytests/live.simulate.propagation.html
Sorry