Có ai biết phương thức .on() của jQuery có thể được triển khai trong JS gốc không? Phương thức "addEventListener" không lấy một phần tử con/selector như là một cách để lọc, và tôi không nghĩ rằng tôi có kiến thức tạo bọt/nắm bắt thích hợp để hiểu hoàn toàn những gì đang xảy ra trong đó. Tôi đã tham khảo ý kiến nguồn trong event.js, nơi nó xuất hiện mà cuối cùng addEventListener không được sử dụng giống như bình thường, nhưng tôi không chắc tôi khá grok nguồn.Native addEventListener với bộ chọn như .on() trong jQuery
Nếu phương pháp gốc không cung cấp một cơ chế để tận dụng lợi thế của bong bóng và chụp, thì hàm jQuery .on() thực sự thậm chí có bất kỳ lợi ích nào, hay nó chỉ làm cho nó trông như vậy? Tôi đã theo ấn tượng rằng
.on('parent', '.child', fn(){});
là hiệu quả hơn gắn một sự kiện để tất cả trẻ em riêng biệt, nhưng từ giải thích của tôi về nguồn, thật khó để biết jQuery là bằng cách nào đó quản lý này trong một cách để dẫn đến hiệu suất cải thiện, hoặc nếu nó chỉ là để dễ đọc.
Có phương pháp chuẩn để triển khai sự kiện trên cha mẹ tận dụng các giai đoạn tạo bọt/chụp cho các phần tử con của nó, thay vì phải đính kèm sự kiện cho từng cá nhân không?
Nếu bạn không hiểu cách '.on()' hoạt động thì tôi nghi ngờ rằng bạn thực sự có thể đánh giá hiệu suất của nó – Alexander
Để tìm hiểu mọi thứ bạn cần biết về các sự kiện: http://www.quirksmode.org/ js/introevents.html. Về câu hỏi của bạn: Những gì bạn muốn được gọi là * sự kiện đoàn * và nó thực sự khá đơn giản. Đính kèm một trình xử lý đồng đều cho bất kỳ phụ huynh nào và kiểm tra xem nút đích ('event.target') có fullfils tiêu chí của bạn hay không. –
* related: * [Tổ chức sự kiện DOM là gì?] (Http://stackoverflow.com/questions/1687296/what-is-dom-event-delegation). –