Event handling is the basic need to develop Rich Internet Web Applications and that will become very tough with elements added to DOM dynamically.
Jquery gives simple solution to do event binding for dynamic elements under a DOM object.
The .on() method provides several useful features.
$( "p" ).on( "click", function() {
console.log( "was clicked" );
});
Suppose you want to trigger the same event whenever the mouse hovers over or leaves the selected elements.
Here we need to use "mouseenter mouseleave"
$('div').on('mouseenter mouseleave', function() {
console.log('mouse hovered over or left a div');
});
Many Events and Handlers:
Suppose that instead you want different event handlers for when the mouse enters and leaves an element.
if you want to show and hide a tooltip on hover, you would use this.
.on() accepts an object containing multiple events and handlers.
$( "div" ).on({
mouseenter: function() {
console.log( "hovered over a div" );
},
mouseleave: function() {
console.log( "mouse left a div" );
},
click: function() {
console.log( "clicked on a div" );
}
});
Event Delegation:
$( "body" ).on( "click", "p", function() {
alert( $( this ).text() );
});
It will be executed for all the p tags in body tag no matter if you add few dynamically.