Convert .live() to .on()
event-handling, jquery, jquery-events
Solution
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).
Problem
How do I go about combining this old jQuery code into the v1.7 `.on()`? v1.3 `.live()`: ``` $('#results tbody tr').live({ mouseenter: function () { $(this).find('.popup').show(); }, mouseleave: function () { $(this).find('.popup').hide(); } }); ``` v1.7 `.on()`: ``` $('#results tbody').on('mouseenter', 'tr', function () { $(this).find('.popup').show(); }); $('#results tbody').on('mouseleave', 'tr', function () { $(this).find('.popup').hide(); }); ``` I want to pass both event handlers to one `.on()` call, but keep the brilliant event delegation `.on()` allows me to do.