I have a tree of divs:
<div id="a" onclick="func">
<div id="b" onclick="func">
<div id="c" onclick="func">
</div>
</div>
</div>
When a click is made on a div it makes it's children invisible - ie click on "a" will turn "b" and "c" invisible.
function func{
if ($(childId).hasClass("visible")){
$(childId).removeClass("visible");
$(childId).addClass("invisible");
}
The problem is: a click on "b" will call "a"'s click and make "b" and "c" invisible. How do I disable the click on "a" using jQuery?
thanks
use
event.stopPropagation()
when click on b and c
You can add a handler for the child that will prevent the click event from propagating up:
This way clicks to
'#b'
will not propagate to'#a'
. Neither will clicks to'#c'
go to'#b'
, and hence not to'#a'
.