Events: Basics (ইভেন্ট)
Event কী, addEventListener, ক্লিক/keyboard/input ইভেন্ট, event object — পেজকে প্রতিক্রিয়াশীল করা বাংলায়।
Event হলো ব্যবহারকারীর কোনো কাজ — বাটন চাপা, টাইপ করা, মাউস ঘোরা। JavaScript event-এ প্রতিক্রিয়া জানিয়ে পেজকে interactive করে তোলে।
addEventListener
const btn = document.getElementById("saveBtn");
btn.addEventListener("click", () => {
console.log("বাটন চাপা হয়েছে!");
});addEventListener(ইভেন্টনাম, handler) — সবচেয়ে আধুনিক ও নির্ভরযোগ্য উপায়। একই element-এ একাধিক handler দেওয়া যায়।
Common events
// ক্লিক
btn.addEventListener("click", handler);
// ফর্ম submit
form.addEventListener("submit", (e) => {
e.preventDefault(); // পাতার reload আটকানো
console.log("সাবমিট");
});
// keyboard — চেপে ছেড়ে দিলে
input.addEventListener("keyup", (e) => {
console.log("চাপা key:", e.key);
});
// input-এর মান বদলে
input.addEventListener("input", () => {
console.log(input.value);
});event object
btn.addEventListener("click", (event) => {
console.log(event.type); // "click"
console.log(event.target); // যা চাপা পড়েছে
console.log(event.clientX, event.clientY); // মাউস-এর অবস্থান
});handler-এ প্রথম argument হলো event object — ইভেন্টের বিস্তারিত (type, target, key, position)।
Mouse events
box.addEventListener("mouseenter", () => console.log("মাউস ভেতরে ঢুকেছে"));
box.addEventListener("mouseleave", () => console.log("বেরিয়ে গেছে"));
box.addEventListener("dblclick", () => console.log("ডাবল ক্লিক"));
document.addEventListener("mousemove", (e) => {
const pos = `${e.clientX}, ${e.clientY}`;
coords.textContent = pos;
});Keyboard events
document.addEventListener("keydown", (e) => {
if (e.key === "Escape") {
modal.classList.add("hidden"); // Esc চেপে বন্ধ
}
});
// shortcut — Ctrl+S
if (e.ctrlKey && e.key.toLowerCase() === "s") {
e.preventDefault();
save();
}HTML attribute vs addEventListener
<!-- পুরনো পদ্ধতি (এড়িয়ে চলুন) -->
<button onclick="doSomething()">চাপুন</button>
<!-- আধুনিক: JS-এ রেজিস্টার -->
<button id="btn">চাপুন</button>
<script>
const btn = document.getElementById("btn");
btn.addEventListener("click", () => {
console.log("modern way");
});
</script>onclick-attribute inline HTML-কোড মেশানো — debuggable নয়। addEventListener দিয়ে HTML পরিষ্কার থাকে, একাধিক handler চলে।
| ইভেন্ট | কখন |
|---|---|
click | ক্লিকে |
submit | ফর্ম জমায় |
input | text input বদলে |
keydown / keyup | key চাপলে / ছাড়লে |
mouseenter / mouseleave | মাউস ঢোকে/বাহির |
focus / blur | ফোকাস-এ / ফোকাস ছাড়ে |
প্রথমে element খুঁজে নিন (querySelector), তারপর listener বাঁধুন — element না পেলে listener-ও কাজ করবে না।
একটি বাটনে click handler লিখুন যা একটি <p>-এর textContent বদলায় — প্রথম interactive piece।