jQuery - convert .live() to .on()

后端 未结 4 1960
误落风尘
误落风尘 2020-12-11 05:06

How do I go about combining this old jQuery code into the v1.7 .on()?

v1.3 .live():

    $(\'#results tbody tr\').live({
            


        
相关标签:
4条回答
  • 2020-12-11 05:40

    The formats used are specified in the documentation for live

    $(document).on({...events...}, selector, data);
    

    -or-

    $(document).on(event, selector, data, callback);
    

    The code for the live function in 1.7+ is now just a pass-through function:

    live: function( types, data, fn ) {
        jQuery( this.context ).on( types, this.selector, data, fn );
        return this;
    }
    
    0 讨论(0)
  • 2020-12-11 05:42

    You can pass an event-map as the first parameter:

    $('#results tbody').on({
        'mouseenter' : function () {
            $(this).find('.popup').show();
         },
        'mouseleave' : function () {
            $(this).find('.popup').hide();
        }
    }, 'tr');
    

    jQuery documentation:

    .on( events-map [, selector] [, data] ),
    events-map A map in which the string keys represent one or more space-separated event types and optional namespaces, and the values represent a handler function to be called for the event(s).

    0 讨论(0)
  • 2020-12-11 05:46

    I just want to pass both event handlers in one object, like I do in the first example.

    In this case you could attach the two events together, then differentiate them in the handler itself, like this:

    $('#results tbody').on('mouseenter mouseleave', 'tr', function (e) {
        if (e.type == "mouseenter") {
            $(this).find('.popup').show();
        }
        else {
            $(this).find('.popup').hide();
        }
    });
    
    0 讨论(0)
  • 2020-12-11 05:46

    Taking your first example and changing live to on should be all that you need

     $('#results tbody tr').on({
    mouseenter:
       function () { $(this).find('.popup').show(); },
    mouseleave:
       function () { $(this).find('.popup').hide(); }
    })
    

    See: http://api.jquery.com/on/#example-6

    0 讨论(0)
提交回复
热议问题