Niedawno odkryłem różnicę między propagowaniem bąbelków i przechwytywaniem zdarzeń DOM, przy użyciu javascript. Teraz rozumiem, jak to działa, ale znalazłem dziwną sytuację i chciałbym wiedzieć, dlaczego tak się dzieje.Bubbling i przechwytywanie za pomocą addEventListener
Zgodnie z Quirks mode propagacja zdarzenia rozpoczyna się od przechwytywania na zewnętrznym elemencie div, osiąga dno, a następnie bąbelki do góry. Problem polegał na tym, że zacząłem wykonywać pewne testy.
Na tej pierwszej, wszystko działa zgodnie z oczekiwaniami:
<div id="out">
<div id="in">
Click This!!
</div>
</div>
<script type="text/javascript">
document.getElementById('out').addEventListener('click', function(){
alert('capture out');
}, true);
document.getElementById('in').addEventListener('click', function(){
alert('capture in');
}, true);
document.getElementById('out').addEventListener('click', function(){
alert('bubble out');
}, false);
document.getElementById('in').addEventListener('click', function(){
alert('bubble in');
}, false);
</script>
Jeśli klikniesz tekst, alarmy go „uchwycić się”, „przechwytywanie w”, „bańka” i „bańki out”. Problemem jest za pomocą następującego kodu:
<div id="out">
<div id="in">
Click This!!
</div>
</div>
<script type="text/javascript">
document.getElementById('out').addEventListener('click', function(){
alert('bubble out');
}, false);
document.getElementById('in').addEventListener('click', function(){
alert('bubble in');
}, false);
document.getElementById('out').addEventListener('click', function(){
alert('capture out');
}, true);
document.getElementById('in').addEventListener('click', function(){
alert('capture in');
}, true);
</script>
W tym przypadku alarmy go „uchwycić się”, „bańki w” „przechwytywanie w” i „na zewnątrz” bańka. Jeśli zauważysz, jedyną różnicą jest to, że na drugim bulbot jest przydzielany jako pierwszy, ale nie sądzę, że powinno to coś zmienić.
Próbowałem tego z Firefoksem i Chrome, a wyniki są takie same (rozumiem, że przeglądarka internetowa nie obsługuje przechwytywania).
thanx za to pytanie do punktu. sprawił, że moja idea była jasna co do przechwytywania i bulgotania. –