Capturing und Sprudeln mit jQuery
Ich bin neu bei jQuery und ich versuche zu verstehen, das Konzept der Erfassung und blubbert.
Ich habe gelesen, eine Menge von Artikeln, aber die meisten von Ihnen beschriebene Ereignis-propagation für Javascript.
Nehmen wir an, wir haben den folgenden HTML-code:
<div id="outter">
outter
<div id="inner">
inner
</div>
</div>
Ist die Erfassung der phase, wo wir nach unten gehen, die DOM-Elemente und Blasenbildung, wenn wir gehen.
In Javascript können Sie entscheiden, welchen Weg Sie gehen sollen (true oder false Parameter):
element.addEventListener('click',doSomething,true) --> capture phase
element.addEventListener('click',doSomething,false) --> bubble phase
Gibt es etwas ähnliches für jQuery zu bezeichnen, die den Weg zu anderen als den JavaScript-Weg?
Tut auch jQuery verwendet standardmäßig eine phase? Zum Beispiel Blase?
Weil ich verwendete den folgenden code, um dies zu testen:
css
<style>
div {
border: 1px solid green;
width: 200px;
}
</style>
jQuery
<script>
$(document).ready(function(){
$('div').click(function(){
$(this).animate({'width':'+=10px'},{duration: 3000})
});
});
</script>
Scheint es, dass, wenn ich auf den div outter, nur, dass div animiert zu einer größeren div. Wenn ich auf das innere div die beiden divs animieren zu größeren divs.
Ich weiß nicht, ob ich bin falsch, aber dieser test zeigt, dass der Standard-browser-propagation-Methode ist bubble.
Bitte korrigieren Sie mich, wenn ich falsch bin.
InformationsquelleAutor der Frage christostsang | 2014-07-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
jQuery verwendet event-bubbling. Wenn Sie möchten, fügen Sie einen Ereignis-handler, der benutzt die capturing-Modell, müssen Sie ihn explizit mit
addEventListener
. Event capturing jQuery zeigt, wie Sie dies tun können, mithilfe von jQuery-Selektoren.InformationsquelleAutor der Antwort Barmar
Ereignis-bubbling, die starten, aus dem innersten element, um die äußerste element.
Ereignis-Aufnahme gestartet wird die Ausführung von der äußeren element, um das innerste element.
Aber jQuery wird mithilfe von Ereignis-bubbling. Wir können erreichen, Ereignis Aufnahme mit:
Den 3. parameter der addEventListener, die dem browser mitteilen, ob Sie Ereignis-bubbling oder event capturing.
Standardmäßig ist er false.
Wenn es false ist, dann dauert es event-bubbling.
Wenn es wahr ist dann wird es dauern, event capturing.
InformationsquelleAutor der Antwort Vijay Ramesh