Giải thích .bind(), .live(), .delegate() và .on() ?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
94 lượt xem
Jquery senior

Tất cả 4 phương thức jQuery này được sử dụng để gắn các sự kiện vào bộ chọn hoặc các phần tử. Nhưng tất cả chúng đều khác xa nhau.

  • .bind(): Đây là phương thức dễ nhất và nhanh chóng để liên kết các sự kiện. Nhưng vấn đề với bind() là nó không hoạt động đối với các phần tử được thêm động mặc dù khớp với bộ chọn (selector). bind() chỉ gắn các sự kiện vào các phần tử hiện tại không phải phần tử tương lai (các phần tử được thêm vào DOM sau khi thực hiện lệnh gọi .bind()). Trên đó, nó cũng có các vấn đề về hiệu suất khi xử lý một bộ chọn lớn.
  • .live(): Phương thức này khắc phục được nhược điểm của bind(). Nó hoạt động với các phần tử được thêm động hoặc các phần tử tương lai. Do hiệu suất kém trên các trang lớn, phương pháp này không được chấp nhận kể từ jQuery 1.7 và bạn nên ngừng sử dụng nó. Chaining không được hỗ trợ chính xác nếu sử dụng phương pháp này.
  • .delegate(): Phương thức .delegate() hoạt động theo kiểu tương tự như phương thức .live(), nhưng thay vì gắn bộ chọn / thông tin sự kiện vào document, bạn có thể chọn nơi nó được neo và nó cũng hỗ trợ chaining.
  • .on(): Vì phương thức live() không được chấp nhận với phiên bản 1.7, nên phương thức mới đã được giới thiệu có tên ".on()". Phương pháp này cung cấp tất cả các tính năng tốt của 3 phương pháp trước đó và nó mang lại sự đồng nhất cho việc liên kết các trình xử lý sự kiện.
{{login.error}}