Tôi đang cố gắng hiểu sự khác biệt đặc biệt này giữa các trình xử lý sự kiện trực tiếp và được ủy nhiệm bằng phương thức jQuery .on () . Cụ thể, câu cuối cùng trong đoạn này:
Khi a
selector
được cung cấp, bộ xử lý sự kiện được gọi là ủy nhiệm . Trình xử lý không được gọi khi sự kiện xảy ra trực tiếp trên phần tử bị ràng buộc, mà chỉ dành cho con cháu (phần tử bên trong) khớp với bộ chọn. jQuery đánh bóng sự kiện từ mục tiêu sự kiện cho đến phần tử nơi trình xử lý được đính kèm (nghĩa là phần tử trong cùng với phần tử ngoài cùng) và chạy trình xử lý cho bất kỳ phần tử nào dọc theo đường dẫn đó khớp với bộ chọn.
"Chạy trình xử lý cho bất kỳ yếu tố nào" có nghĩa là gì? Tôi đã làm một trang thử nghiệm để thử nghiệm với khái niệm này. Nhưng cả hai cấu trúc sau đây dẫn đến cùng một hành vi:
$("div#target span.green").on("click", function() {
alert($(this).attr("class") + " is clicked");
});
hoặc là,
$("div#target").on("click", "span.green", function() {
alert($(this).attr("class") + " is clicked");
});
Có lẽ ai đó có thể tham khảo một ví dụ khác để làm rõ điểm này? Cảm ơn.