JavaScript tạm thời tắt trình nghe sự kiện

Tôi có một nhóm các yếu tố có thể được nhấp vào. Nhưng một khi đã nhấp vào, tôi không muốn họ nhấp lại. Tôi có một loạt các cờ và nếu nhưng nó có vẻ là một giải pháp xấu. Xóa và thêm trình xử lý sự kiện cũng xấu. Có cách nào tốt hơn?

Để xóa một trình xử lý sự kiện đã đăng ký trước đó bằng phương thức addEventListener[], bạn sử dụng phương thức removeEventListener[] như sau

element.removeEventListener[type, handler];

Code language: CSS [css]

Giả sử rằng bạn có một nút với lớp .btn

Register

Code language: HTML, XML [xml]

Phần sau định nghĩa trình xử lý sự kiện

Register

Code language: HTML, XML [xml]
0

function clickHandler[e] { console.log['Button Clicked']; }

Code language: JavaScript [javascript]

Sau đây thêm một trình xử lý sự kiện vào sự kiện nhấp chuột của nút

const btn = document.querySelector['.btn']; btn.addEventListener['click', clickHandler];

Code language: JavaScript [javascript]

Để xóa trình xử lý sự kiện click khỏi sự kiện click của nút, bạn sử dụng phương thức removeEventListener[] như sau

btn.removeEventListener['click', clickHandler];

Code language: JavaScript [javascript]

Lưu ý rằng sự kiện và trình xử lý sự kiện phải giống nhau. Nếu bạn sử dụng chức năng ẩn danh làm trình xử lý sự kiện, bạn sẽ không thể xóa chức năng đó. Đoạn mã sau không hoạt động

const btn = document.querySelector['.btn']; // add an event listner btn.addEventListener['click', function[e]{ console.log['Button Clicked']; }]; // this code won't work and has no effect btn.removeEventListener['click', function[] { console.log['Button Clicked']; }];

Code language: JavaScript [javascript]

Hầu hết các trình duyệt web hiện đại bao gồm Chrome, Firefox và Edge đều hỗ trợ phương pháp removeEventListener[]

IE8 không hỗ trợ phương thức removeEventListener[]. Thay vào đó, nó sử dụng phương thức

Register

Code language: HTML, XML [xml]
4

Nếu bạn vẫn cần hỗ trợ IE8, bạn có thể sử dụng chức năng trợ giúp sau hoạt động trên các trình duyệt

Javascript removeEventListener[] là một hàm sẵn có được sử dụng để xóa, loại bỏ một trình xử lý sự kiện đã được thêm trước đó bằng cách sử dụng hàm addEventListener[] khỏi phần tử

cú pháp

________số 8_______

Thông số. Nó chấp nhận ba tham số được chỉ định bên dưới-

  • biến cố. Đó là một chuỗi mô tả tên của sự kiện phải loại bỏ
  • thính giả. Đó là chức năng của trình xử lý sự kiện để loại bỏ
  • sử dụngCapture. Nó là một tham số tùy chọn. Theo mặc định, đó là một giá trị Boolean sai chỉ định loại bỏ trình xử lý sự kiện khỏi giai đoạn sủi bọt và nếu nó đúng thì phương thức removeEventListener[] sẽ loại bỏ trình xử lý sự kiện khỏi giai đoạn chụp

Các ví dụ JavaScript để hiển thị hoạt động của phương thức removeEventListener[]

ví dụ 1. Trong ví dụ này, chúng tôi sẽ tạo hiệu ứng di chuột trên một số văn bản và sau đó xóa sự kiện bằng hàm removeEventListener[]

jav




Clickthis button to stop hovering effect !!

    

Click0

Click1

Click2

Click3

Click4

Click5this

Click7

Click2

Click9this0this1

Click2

this3

    this5_______15_______4this7

this8

    button to stop hovering effect !!

0_______17_______1button to stop hovering effect !!

2

this8

    button to stop hovering effect !!

5 button to stop hovering effect !!

6

button to stop hovering effect !!7_______17_______8this0

Chủ Đề