Tôi sẽ có các cặp vợ chồng ở đây. Xin hãy giúp tôijQuery: Sự kiện Bubbling và cách "nhấp", "live.click", "stopPropagation" và "return false" hoạt động cùng nhau
Đây là trường hợp cơ sở: http://jsfiddle.net/2zsLy/9/
Khi tôi bấm Click Me
, cả hai hộp cảnh báo và Another Paragraph
đi ra. Điều này được mong đợi từ bong bóng sự kiện nhấp chuột lên vùng chứa chính, là body
. Bây giờ bắt đầu câu hỏi của tôi
1) http://jsfiddle.net/2zsLy/10/
Tại sao thêm return false
để tôi live.click
không chỉ dừng lại sự kiện nhấp chuột từ bong bóng lên. Từ ví dụ, bong bóng live.click bật lên và kích hoạt hộp cảnh báo. Tôi nghĩ rằng tài liệu nói rằng trả lại false sẽ ngăn chặn sự kiện trực tiếp từ bong bóng.
2) http://jsfiddle.net/2zsLy/11/
Bây giờ, tôi thay đổi sự kiện click trong body
-live.click
và nó giải quyết vấn đề -> sự kiện nhấp chuột không bong bóng lên (vì thế không có hộp cảnh báo được hiển thị). Tại sao live.click
công việc và click
thì không.
3) http://jsfiddle.net/2zsLy/13/
Tôi nghĩ rằng các tài liệu nói rõ rằng gọi event.stopPropagation()
sẽ không ngừng các bọt lên từ xảy ra, tôi cũng chỉ làm. Tôi sử dụng event.stopPropagation()
hy vọng rằng nó sẽ vẫn kích hoạt hộp cảnh báo của tôi, nhưng nó không. Tại sao?
LƯU Ý: để biết câu trả lời cho hai câu hỏi đầu tiên, hãy xem justkt
câu trả lời. Để có câu trả lời cho câu hỏi cuối cùng, hãy xem câu trả lời Squeegy
và câu trả lời của mình.
Tôi không nghĩ bạn trả lời câu hỏi của tôi chút nào. U chỉ trích dẫn tài liệu mà không có gì mà tôi không biết. Đối với mỗi scenerio, tôi bao gồm jsfiddle để chứng minh câu hỏi của tôi. Vui lòng tham khảo chúng. –
@Harry - Tôi đã chỉnh sửa câu trả lời của mình để giải quyết từng ví dụ về jsfiddle. – justkt
Cảm ơn bạn rất nhiều. Câu trả lời của bạn về '1' và' 2' giúp tôi rất nhiều. Tuy nhiên, đối với '3', không phải để nói rằng bạn sai, nhưng đây là trích dẫn từ trang web jQuery' Để ngừng xử lý thêm từ thực thi sau khi một ràng buộc bằng cách sử dụng .live(), trình xử lý phải trả về false. Gọi .stopPropagation() sẽ không thực hiện được điều này.' Từ trên, 'Squeegy' trả lời và một số nhận xét về' 3', bạn có đồng ý với câu trả lời của mình cho '3', justkt? –