// Basic syntax
element.addEventListener(eventType, handlerFunction)
// Inline (old way — avoid)
<button onclick="doSomething()">Click</button>
// addEventListener (recommended)
const btn = document.getElementById("myBtn")
btn.addEventListener("click", function() {
console.log("Clicked!")
})
// Arrow function version
btn.addEventListener("click", () => {
console.log("Clicked!")
})
// Remove listener
btn.removeEventListener("click", handler)
document.addEventListener("click", function(event) {
console.log(event.type) // "click"
console.log(event.target) // clicked element
console.log(event.clientX) // X position
console.log(event.clientY) // Y position
event.preventDefault() // default action ဖျက်
event.stopPropagation() // bubbling ရပ်
})
| Event | ဘာတဲ့ fire ဖြစ်လဲ |
|---|---|
click | Mouse click |
dblclick | Double click |
mouseenter | Mouse enter element |
mouseleave | Mouse leave element |
mousemove | Mouse move |
keydown | Key pressed (any) |
keyup | Key released |
input | Input value changed |
change | Input value changed + blur |
focus | Element gets focus |
blur | Element loses focus |
submit | Form submitted |
load | Page/resource loaded |
resize | Window resize |
scroll | Page scroll |
document.addEventListener("keydown", function(e) {
console.log(e.key) // "Enter", "a", "ArrowUp", etc.
console.log(e.code) // "Enter", "KeyA", "ArrowUp"
console.log(e.ctrlKey) // Ctrl pressed?
console.log(e.shiftKey) // Shift pressed?
console.log(e.altKey) // Alt pressed?
if (e.key === "Enter") { /* Submit form */ }
if (e.ctrlKey && e.key === "s") { /* Save */ }
})
const form = document.getElementById("myForm")
form.addEventListener("submit", function(e) {
e.preventDefault() // Form ကို reload မဖြစ်အောင်
const name = document.getElementById("name").value
if (!name) {
alert("Name is required!")
return
}
console.log("Submitted:", name)
})
// Problem: dynamic elements ကို directly listen မရ
// Solution: Parent element ကို listen ပြီး e.target စစ်
const list = document.getElementById("list")
list.addEventListener("click", function(e) {
if (e.target.classList.contains("item-btn")) {
console.log("Clicked:", e.target.textContent)
e.target.parentElement.remove()
}
})
// Now even dynamically added items work!
const newItem = document.createElement("li")
newItem.innerHTML = `New Item <button class="item-btn">Delete</button>`
list.appendChild(newItem)
🎉 JavaScript Core 8 Lessons Complete!
Next: OOP, inheritance, prototypes, closures, patterns, error handling ဆက်သင်မယ်