تعریف یک خطیش میشه این:
Event bubbling and event capturing are two different event propagation mechanisms in JavaScript
دو روش Event bubbling و Event capturing برای انتشار event در درخت DOM به کار میروند، زمانی که یک رویداد روی المانی (element) رخ میدهد که در داخل المان دیگری قرار دارد. این دو حرکت رویداد از یک المان هدف به سمت المان های والد و اجداد را توصیف می کنند.
برای مثال در کد زیر:
اگر برای ساختار html بالا از رویداد click event listener استفاده کنیم، برای ایجاد Event bubbling خواهیم داشت:
با این حساب اگر شما روی دکمه کلیک کنید، رویدادها به سمت اجداد حباب میشوند و event listener به ترتیب زیر فعال میگردد:
رویداد از دکمه شروع و تا بیرونی ترین المان حباب میشود.
از طرف دیگر برای Event capturing داریم:
در ثبت رویداد یا event capture از بیرونی ترین المان شروع میشود و سپس قبل از رسیدن به المان هدف، از طریق فرزندان به پایین حرکت میکند.
با فعال نمودن پارامتر true در این حالت اگر بر روی دکمه کلیک کنید، رویدادها به صورت نزولی ثبت میشوند ترتیب فعال شدن event listener به صورت زیر است:
در event capturing رویداد از بیرونی ترین المان شروع میشود و به المان هدف میرسد.
بهطور پیشفرض، انتشار رویداد در جاوا اسکریپت از مکانیسم حبابسازی رویداد event bubbling پیروی میکند. با تعیین پارامتر true در event listener میتوانیم از مکانیزم ثبت رویداد یا event capturing استفاده نماییم.