Bug Tracker

Ticket #3980 (closed enhancement: invalid)

Opened 6 years ago

Last modified 4 years ago

.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

live_ordering.diff Download (3.2 KB) - added by iraebrasil 6 years ago.
sort live handlers to mimic natural propagation

Change History

comment:1 in reply to: ↑ description Changed 6 years ago by iraebrasil

Changed 6 years ago by iraebrasil

sort live handlers to mimic natural propagation

comment:2 Changed 5 years ago by john

  • Status changed from new to closed
  • Resolution set to fixed

Fixed in SVN rev [6192].

comment:3 Changed 5 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:4 Changed 5 years ago by brandon

  • Owner brandon deleted
  • Status changed from reopened to new

comment:5 Changed 4 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!

comment:6 Changed 4 years ago by rwaldron

  • Priority changed from major to low
  • Milestone 1.3.2 deleted

comment:7 Changed 4 years ago by trac-o-bot

  • Status changed from pending to closed
  • Resolution set to invalid

Automatically closed due to 14 days of inactivity.

Note: See TracTickets for help on using tickets.