Ist Stop-Propagation nicht dazu gedacht, das Blasen zu einem Elternelement zu stoppen?Ereignis sprudelt zum Elternteil sogar mit stopPropagation?
Ich weiß, für das Ereignis Ziel in diesem Fall zu überprüfen, ich frage mich nur, warum StopPropagation, die das Wort allein schmatzt nur dieses Problem zu verhindern, führt nicht so.
https://jsfiddle.net/hzo9eq9m/
var child = document.querySelector('.parent')
.addEventListener('click',function(e){
e.stopPropagation();
$(this.querySelector('.child')).toggleClass('selected');
console.log(e);
},
false);
.society {
padding:10px;
background-color:green;
position:relative;
}
.parent {
background-color:red;
width:60%;
margin-left:30%;
}
.child {
width: 100%;
background-color:pink;
position:absolute;
top:0;
left:0;
width:0;
max-width:0px;
max-height:0px;
transition: max-width 1s, max-height 1s;
overflow:hidden;
}
.child.selected {
top:0;
left:0;
width:100%;
max-width:1000px;
max-height:1000px;
}
<div class="society">
<div class="parent">
parent
<div class="child">
child
</div>
</div>
</div>
Was Ihr Problem ist? Sie haben nur einen Ereignis-Listener hier, also bin ich mir nicht sicher, welches Verhalten Sie von ['Event.stopPropagation' erwarten] (https://developer.mozilla.org/en-US/docs/Web/API/Event/ stopPropagation) ... –
Ich erwarte, dass das Klickereignis, das dem Elternelement zugeordnet ist, nicht ausgelöst wird, wenn auf das Kind geklickt wird. Klicken Sie auf Eltern, und wenn Kind geöffnet wird, wird das Ereignis auf Eltern ausgelöst, wenn Kind angeklickt wird. StopPropagation behauptet, es zu verhindern. –
Nein, wenn Sie 'stop propagation' auf' child' verwenden, dann würde es nicht bis zum 'parent'-Wert springen. –