Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check for a click in a parent element, but not in the child?

Code:

HTML

<!-- snip -->
<div class="parent" id="parent">
    <div class="child" id="child">
    </div>
</div>
<!-- snip -->

Javascript

/* snip */
$(function () {
    $("#parent").click(function () {
        alert("This dialog should only show up if the parent is clicked.");
    });
});
/* snip */

(This is just the basic structure of the actual code... some things are different in the actual code eg. the child is a jQuery UI Draggable element)

like image 915
aviraldg Avatar asked Jan 21 '23 02:01

aviraldg


1 Answers

The way JavaScript/DOM events work is that they "bubble" up from children to parents. So you just need to stop that at the child element:

$('#child').click(function(event) {
    event.stopPropagation();
});

See the jQuery documentation for .click() for more information. Alternatively, you could check to see what the originating element is within the parent's event handler using event.target.

like image 87
PleaseStand Avatar answered Feb 01 '23 20:02

PleaseStand