7

If I have a parent div that is positioned absolutely and then a child div that has a higher z-index and is positioned relatively, is there a way to have a click event register only if the parent div is clicked, but not the inside div?

Relevant jsFiddle

Updated fiddle with text input example

4 Answers 4

14
$(".parent").click(function(e) {
    if (e.target == this) {
        $(this).hide();
    }
});​

DEMO: http://jsfiddle.net/Bt5HA/4/

Sign up to request clarification or add additional context in comments.

2 Comments

Minor detail, but why not use strict equality?
@m59 There is no difference when you compare references, otherwise possible nano difference in speed is not important in this context.
0

Access child elements and return false when they're clicked http://jsfiddle.net/Bt5HA/3/

1 Comment

VisioN has the best solution, ignore this post
0

Change to:

$('.child a').click(function(e) {
    $(this).parent('.child').hide();
});​

1 Comment

That only works if the child is clicked. What happens if the parent is clicked?
0

Try This

$('#child').click(function(event) {
event.stopPropagation();
alert('You clicked Child');
});


$('#parent').click(function() {
alert('You clicked on Parent');
});

You can check working here http://jsfiddle.net/VnHGh/24/

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.