我的jQuery click
存在问题,当选择器位于另一个div
之上的div
时,如此处所示。
html
<div id="parent">
<div id="child">
</div>
</div>
CSS
#parent{
background-color:red;
width:100px;
height:100px;
position:relative;
}
#parent:hover #child {
display:block;
}
#child{
background-color:yellow;
width:10px;
height:10px;
border: 1px solid black;
position:absolute;
display:none;
bottom:0;
right:0;
}
JS
$("#parent").bind("click", function() {
alert('you clicked on red');
});
$("#child").bind("click", function() {
alert('you click on yellow');
});
如果点击红色#parent
,它会给出正确的警告。如果单击黄色#child
,则会显示黄色警报和红色警报。
请参阅jsfiddle
有没有办法解决这个问题?
答案 0 :(得分:6)
Use jQuery's .stopPropagation()
$("#parent").bind("click", function() {
alert('you clicked on red');
});
$("#child").bind("click", function(e) {
e.stopPropagation();
alert('you click on yellow');
});