অধ্যায় ২৮: JavaScript Event Bubbling ও Capturing (বাংলায়)

 


এই অধ্যায়ে শিখবো Event Bubbling এবং Event Capturing কী, কীভাবে কাজ করে, এবং এগুলোকে কিভাবে কন্ট্রোল করা যায়।


১. ইভেন্ট প্রপাগেশন (Event Propagation) কী?

ইভেন্ট প্রপাগেশন হলো DOM এ ইভেন্টের ছড়িয়ে পড়ার প্রক্রিয়া। যখন কোনো এলিমেন্টে ইভেন্ট ঘটে, তখন সেই ইভেন্ট DOM গাছের বিভিন্ন স্তরে ছড়িয়ে পড়ে।

ইভেন্ট প্রপাগেশনের দুই প্রধান ধাপ:

  • Capturing phase (Event Capturing)

  • Bubbling phase (Event Bubbling)


২. Event Capturing (ইভেন্ট ক্যাপচারিং)

  • ইভেন্ট শুরু হয় DOM গাছের মূল (root) থেকে শুরু করে টার্গেট এলিমেন্ট পর্যন্ত নিচে নামা পর্যন্ত।

  • অর্থাৎ ইভেন্ট প্রথম প্যারেন্ট এলিমেন্ট থেকে নিচের চাইল্ড এলিমেন্টে চলে আসে।


৩. Event Bubbling (ইভেন্ট ববলিং)

  • ইভেন্ট শুরু হয় টার্গেট এলিমেন্ট থেকে এবং তারপর উপরের দিকে প্যারেন্ট এলিমেন্টগুলোতে ছড়িয়ে পড়ে।

  • অর্থাৎ ইভেন্ট নিচের চাইল্ড থেকে উপরের প্যারেন্টের দিকে চলে যায়।


৪. উদাহরণ: Event Bubbling

<div id="parent" style="padding:20px; background:#ccc;">
  প্যারেন্ট ডিভ
  <button id="child">চাইল্ড বাটন</button>
</div>

<script>
  let parent = document.getElementById('parent');
  let child = document.getElementById('child');

  parent.addEventListener('click', function() {
    alert('প্যারেন্ট ডিভে ক্লিক');
  });

  child.addEventListener('click', function() {
    alert('চাইল্ড বাটনে ক্লিক');
  });
</script>

বাবলিং: প্রথমে চাইল্ডে ক্লিকের ইভেন্ট কাজ করবে, তারপর প্যারেন্টের।


৫. Event Capturing ব্যবহার

parent.addEventListener('click', function() {
  alert('প্যারেন্ট ডিভে ক্লিক - ক্যাপচারিং');
}, true);  // তৃতীয় প্যারামিটার true হলে ক্যাপচারিং হবে

৬. ইভেন্ট প্রপাগেশন বন্ধ করা

কোনো ইভেন্টের ববলিং বা ক্যাপচারিং বন্ধ করতে পারি:

child.addEventListener('click', function(event) {
  event.stopPropagation();  // ইভেন্ট প্রপাগেশন বন্ধ করে
  alert('চাইল্ড বাটনে ক্লিক');
});

৭. সারসংক্ষেপ

বিষয় বর্ণনা
Capturing ইভেন্ট ডাউন ওয়ার্ড ট্রাভার্সাল (root থেকে child)
Bubbling ইভেন্ট আপওয়ার্ড ট্রাভার্সাল (child থেকে root)
stopPropagation ইভেন্টের ছড়িয়ে পড়া বন্ধ করা

এই অধ্যায়ে শেখা গুরুত্বপূর্ণ পয়েন্ট:

  • ইভেন্ট ববলিং ও ক্যাপচারিং কী

  • কীভাবে addEventListener তৃতীয় প্যারামিটার দিয়ে ক্যাপচারিং চালু হয়

  • event.stopPropagation() দিয়ে ইভেন্ট ছড়ানো বন্ধ করা


পরবর্তী অধ্যায়:
অধ্যায় ২৯: JavaScript Async/Await পরিচিতি

লিখুন: “অধ্যায় ২৯ শুরু করো” — তাহলে শিখবো আসিঙ্ক্রোনাস প্রোগ্রামিং নিয়ে।

Post a Comment

Previous Post Next Post