26
- Inline Event Handlers:
- Đặt trực tiếp trong thẻ HTML.
<button onclick="myFunction()">Click me</button> - DOM Event Handlers:
- Đặt thông qua JavaScript sử dụng thuộc tính
oncủa các đối tượng DOM.
document.getElementById("myButton").onclick = function() { // Code xử lý sự kiện }; - Đặt thông qua JavaScript sử dụng thuộc tính
- addEventListener:
- Phương thức này cho phép thêm nhiều xử lý sự kiện cho một đối tượng.
document.getElementById("myButton").addEventListener("click", function() { // Code xử lý sự kiện }); - Event Object:
- Thông tin chi tiết về sự kiện được truyền vào hàm xử lý thông qua đối tượng sự kiện.
document.getElementById("myButton").addEventListener("click", function(event) { // event chứa thông tin về sự kiện }); - Remove Event Listener:
- Để loại bỏ một xử lý sự kiện được thêm trước đó.
function myFunction() { // Code xử lý sự kiện document.getElementById("myButton").removeEventListener("click", myFunction); } - Bubbling and Capturing:
- Sự kiện có thể lan truyền theo hướng bubbling (lan truyền lên) hoặc capturing (lan truyền xuống).
document.getElementById("myDiv").addEventListener("click", function() { // Xử lý sự kiện trong quá trình lan truyền lên }, false); // Tham số thứ ba là sử dụng bubbling (mặc định) hoặc capturing (true) - Event Delegation:
- Áp dụng một xử lý sự kiện cho nhiều phần tử con thông qua một phần tử cha.
document.getElementById("myDiv").addEventListener("click", function(event) { if (event.target.tagName === "BUTTON") { // Xử lý sự kiện khi button được click } }); - Event Object Properties:
- Đối tượng sự kiện có nhiều thuộc tính hữu ích như
event.target(phần tử gây ra sự kiện),event.type(loại sự kiện), và nhiều thuộc tính khác.document.getElementById("myInput").addEventListener("input", function(event) { console.log(event.target.value); // Lấy giá trị của input });
- Đối tượng sự kiện có nhiều thuộc tính hữu ích như
- Key Events:
- Xử lý sự kiện liên quan đến bàn phím như
keydown,keyup,keypress.document.addEventListener("keydown", function(event) { if (event.key === "Enter") { // Xử lý khi phím Enter được nhấn } });
- Xử lý sự kiện liên quan đến bàn phím như
- Mouse Events:
- Xử lý sự kiện chuột như
click,mouseover,mouseout,mousemove.document.getElementById("myElement").addEventListener("mouseover", function() { // Xử lý khi chuột di chuyển vào phần tử });
- Xử lý sự kiện chuột như
- Form Events:
- Sự kiện liên quan đến form như
submit,reset,change.document.getElementById("myForm").addEventListener("submit", function(event) { // Ngăn chặn việc gửi form event.preventDefault(); // Xử lý form });
- Sự kiện liên quan đến form như
- Touch Events:
- Cho thiết bị cảm ứng, như
touchstart,touchmove,touchend.document.addEventListener("touchstart", function(event) { // Xử lý khi bắt đầu chạm vào màn hình });
- Cho thiết bị cảm ứng, như
- Custom Events:
- Tạo và kích hoạt sự kiện tùy chỉnh để giao tiếp giữa các thành phần khác nhau.
// Định nghĩa sự kiện tùy chỉnh var customEvent = new Event("customEvent"); // Lắng nghe sự kiện tùy chỉnh document.addEventListener("customEvent", function() { // Xử lý sự kiện tùy chỉnh }); // Kích hoạt sự kiện tùy chỉnh document.dispatchEvent(customEvent);
- Tạo và kích hoạt sự kiện tùy chỉnh để giao tiếp giữa các thành phần khác nhau.
- Throttle và Debounce:
- Sử dụng để kiểm soát tần suất gọi hàm xử lý sự kiện, giảm hiệu suất.
// Throttle - giữ lại một số lần gọi trong khoảng thời gian nhất định function throttle(func, delay) { let inThrottle; return function() { if (!inThrottle) { func(); inThrottle = true; setTimeout(() => inThrottle = false, delay); } }; } // Debounce - chờ một khoảng thời gian sau khi sự kiện kết thúc trước khi gọi hàm function debounce(func, delay) { let timer; return function() { clearTimeout(timer); timer = setTimeout(() => func(), delay); }; }
- Sử dụng để kiểm soát tần suất gọi hàm xử lý sự kiện, giảm hiệu suất.
- Animation Events:
- Sự kiện như
animationstart,animationend,animationiterationđể xử lý sự kiện khi animation bắt đầu, kết thúc, hoặc lặp lại.
element.addEventListener("animationend", function() { // Xử lý khi animation kết thúc }); - Sự kiện như
- WebSockets Events:
- Sự kiện như
open,message,closecho xử lý sự kiện liên quan đến WebSockets.
var socket = new WebSocket("ws://example.com/socket"); socket.addEventListener("message", function(event) { // Xử lý khi nhận được tin nhắn từ WebSocket }); - Sự kiện như
- Window Events:
- Các sự kiện như
resize,scroll,loadxảy ra trên cửa sổ trình duyệt.
window.addEventListener("resize", function() { // Xử lý khi kích thước cửa sổ thay đổi }); - Các sự kiện như
- History API Events:
- Sự kiện
popstatekhi lịch sử trình duyệt thay đổi.
window.addEventListener("popstate", function(event) { // Xử lý khi người dùng điều hướng qua các trạng thái lịch sử }); - Sự kiện
- Offline/Online Events:
- Sự kiện
onlinevàofflinekhi trạng thái kết nối Internet thay đổi.
window.addEventListener("online", function() { // Xử lý khi trạng thái trực tuyến }); window.addEventListener("offline", function() { // Xử lý khi trạng thái offline }); - Sự kiện
- Pointer Events:
- Sự kiện như
pointerdown,pointermove,pointerupcho xử lý sự kiện liên quan đến các thiết bị đầu nối như chuột, màn hình cảm ứng.
element.addEventListener("pointerdown", function(event) { // Xử lý khi có sự kiện nhấn chuột hoặc chạm màn hình }); - Sự kiện như
- Animation Events:
- Sự kiện như
animationstart,animationend,animationiterationđể xử lý sự kiện khi animation bắt đầu, kết thúc, hoặc lặp lại.
element.addEventListener("animationend", function() { // Xử lý khi animation kết thúc }); - Sự kiện như
- WebSockets Events:
- Sự kiện như
open,message,closecho xử lý sự kiện liên quan đến WebSockets.
var socket = new WebSocket("ws://example.com/socket"); socket.addEventListener("message", function(event) { // Xử lý khi nhận được tin nhắn từ WebSocket }); - Sự kiện như
- Window Events:
- Các sự kiện như
resize,scroll,loadxảy ra trên cửa sổ trình duyệt.
window.addEventListener("resize", function() { // Xử lý khi kích thước cửa sổ thay đổi }); - Các sự kiện như
- History API Events:
- Sự kiện
popstatekhi lịch sử trình duyệt thay đổi.
window.addEventListener("popstate", function(event) { // Xử lý khi người dùng điều hướng qua các trạng thái lịch sử }); - Sự kiện
- Offline/Online Events:
- Sự kiện
onlinevàofflinekhi trạng thái kết nối Internet thay đổi.
window.addEventListener("online", function() { // Xử lý khi trạng thái trực tuyến }); window.addEventListener("offline", function() { // Xử lý khi trạng thái offline }); - Sự kiện
- Pointer Events:
- Sự kiện như
pointerdown,pointermove,pointerupcho xử lý sự kiện liên quan đến các thiết bị đầu nối như chuột, màn hình cảm ứng.
element.addEventListener("pointerdown", function(event) { // Xử lý khi có sự kiện nhấn chuột hoặc chạm màn hình }); - Sự kiện như

