Method 1
Stop propagation on inner elements before attaching an event on the parent.
$('#parent a').on('click', function(event){ //stop the event bubbling up to the parent event.stopPropagation(); }); $('#parent').on('click', function(event){ //attach event on the parent alert('Parent element clicked!'); });
Method 2
Check if the event target matches the designated target.
$('#parent').on('click', function(event) { if(event.target == event.currentTarget) { alert('Parent element clicked!'); } else { alert('Child element clicked!'); } });
Method 2.1
Check if the tag name of the event target matches a certain element.
$('#parent').on('click', function(event){ if(event.target.tagName.toLowerCase() === 'a'){ alert('Child anchor element clicked!'); } else { alert('Parent element clicked!'); } });