Hàm document.removeEventListener() trong Javascript - Javascript Function
Code RUN <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style type="text/css"> #result{ color: red; font-size: 20px; font-weight: bold; ...
Phương thức removeEventListener()
sẽ xóa bỏ một sự kiện đã được gán vào bởi phương thức document.addEventListener()
.
Để có thể xóa sự kiện, hàm xử lý sự kiện được truyền vào phương thức document.addEventListener()
phải được định nghĩa ở bên ngoài phương thức document.addEventListener()
. Nói cách khác, nếu hàm xử lý sự kiện truyền vào phương thức document.addEventListener()
là một hàm vô danh(Anonymous functions có dạng document.removeEventListener("event", function(){ myScript });
), phương thức removeEventListener()
sẽ không thể xóa sự kiện( Tìm hiểu kỹ hơn ở phần cách sử dụng).
Nếu muốn thêm/xóa sự kiện cho một phần tử xác định, sử dụng phương thức element.addEventListener()
và element.removeEventListener()
.
Cú pháp
Cú pháp: document.removeEventListener(event, function, useCapture)
Trong đó:
- event là một chuỗi đại diện cho sự kiện và không sử dụng tiền tố on. Ví dụ
onclick
thànhclick
. - function là function sẽ bị loại bỏ.
- useCapture là tham số không bắt buộc, xác định event phase được sử dụng để loại bỏ sự kiện:
- Nếu mang giá trị true, sự kiện sẽ bị loại bỏ theo kiểu capturing phase.
- Nếu mang giá trị false, sự kiện sẽ bị loại bỏ theo kiểu bubbling phase.
Cách sử dụng
Xóa bỏ hàm xử lý sự kiện mousemove
của trang:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style type="text/css"> #result{ color: red; font-size: 20px; font-weight: bold; } </style> <body> <h1>Học lập trình miễn phí tại Zaidap.com.net</h1> <p id="result"></p> <button onclick="removeHandler()">Remove event</button> <script> document.addEventListener("mousemove", myFunction); function myFunction() { document.getElementById("result").innerHTML = Math.random(); } function removeHandler() { document.removeEventListener("mousemove", myFunction); } </script> </body> </html>
Hãy thử thay myFuntion()
bằng một hàm ẩn danh và xem kết quả:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style type="text/css"> #result{ color: red; font-size: 20px; font-weight: bold; } </style> <body> <h1>Học lập trình miễn phí tại Zaidap.com.net</h1> <p id="result"></p> <button onclick="removeHandler()">Remove event</button> <script> document.addEventListener("mousemove", function() { document.getElementById("result").innerHTML = Math.random(); }); function removeHandler() { document.removeEventListener("mousemove", myFunction); } </script> </body> </html>
Sau khi click button, sự kiện mousemove
vẫn không bị loại bỏ, đúng với lưu ý mình đã để cập ở trên.
Tham khảo: w3schools.com
Nguồn: Zaidap.com.net