私はjQueryが初めてで、キャプチャとバブリングの概念を理解しようとしています。
たくさんの記事を読みましたが、そのほとんどは Javascript のイベント伝搬について説明していました。
次の HTML コードがあるとします。
<div id="outer">
outer
<div id="inner">
inner
</div>
</div>
キャプチャは DOM 要素を下降するフェーズであり、バブリングは上昇するフェーズです。
Javascript では、どちらの方法に従うかを決定できます (true または false パラメーターを使用)。
element.addEventListener('click', doSomething, true) --> capture phase
element.addEventListener('click', doSomething, false) --> bubble phase
jQuery が JavaScript の方法以外に従う方法を示すのに似たものはありますか?
また、jQuery はデフォルト フェーズを使用しますか? 例えばバブル?
これをテストするために次のコードを使用したためです。
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>
外側の div をクリックすると、その div だけが大きな div にアニメーション化されるようです。内側の div をクリックすると、両方の div がより大きな div にアニメーション化されます。
私が間違っているかどうかはわかりませんが、このテストでは、既定のブラウザーの伝播方法がバブルであることが示されています。
私が間違っている場合は、私を修正してください。