Tôi có một mảnh html:Span bên Neo với sự kiện bọt
<li class="addToFriends"><a href="....">Something something<span>INSIDE SPAN</span>something</a></li>
Để xử lý yêu cầu AJAX khi nhấp vào neo Tôi đã đăng ký xử lý trên nhấp chuột sự kiện:
$('.addToFriends a').click(function(event){
var target = $(event.target);
if (target.is('a')) {
// if I click on SPAN element following fragment won't execute!
// do ajax request
}
event.preventDefault();
});
Câu hỏi của tôi là :
- tại sao sự kiện nhấp chuột được nâng lên cho phần tử span? Sau khi tất cả, tôi không liên kết sự kiện nhấp chuột với các phần tử SPAN
- ngoài câu hỏi trước, tôi nghĩ rằng nếu tôi không xử lý sự kiện nhấp SPAN, trình duyệt sẽ sử dụng sự kiện sôi nổi để tăng sự kiện nhấp cho neo (nếu tôi thắng không gọi event.stopPropagation()). Nhưng tôi cũng đã không làm việc ra cho tôi như rằng sự kiện nhấp chuột được nâng lên chỉ một lần
Vì vậy, bây giờ, tôi có vòng vấn đề mà tôi giải pháp của tôi là:
$('.addToFriends a').click(function(event){
var target = $(event.target);
if (!target.is('a')) {
target = target.parent('a')
}
...
});
nhưng vẫn còn, tôi tò mò tại sao nó hoạt động như thế này ...
Cảm ơn,
Paweł
Cảm ơn rất nhiều sự trợ giúp. Sau khi nghiên cứu các bài báo đã đề cập, mọi thứ đều rõ ràng. Và thay vì tham chiếu đến ** e.target ** (có thể thay đổi) tôi tham khảo ** this ** (luôn luôn là anchor). – dragonfly
Cảm ơn, tôi sẽ xem xét kỹ hơn về đặc điểm kỹ thuật & bài viết. Dù sao, meaby bạn có thể trả lời câu hỏi đó:> tại sao sự kiện nhấp chuột được nâng lên cho span > yếu tố? Sau khi tất cả, tôi đã không ràng buộc > nhấp vào sự kiện để các yếu tố SPAN bởi vì, chủ yếu đây là một vấn đề đối với tôi. – dragonfly