Tất cả, tôi biết trong mô hình sự kiện Dom cấp 2, có tồn tại sự kiện chụp và bong bóng sự kiện. nhưng tôi không thể tìm ra cách đối phó với họ. Vì vậy, tôi đã thực hiện một số thử nghiệm với phương pháp .bind
. đây là mã của tôi. Vui lòng xem lại.Các sự kiện Jquery .bind được kích hoạt khi chụp sự kiện hoặc bong bóng sự kiện
<script>
$(function() {
$('*').each(function(){
var current = this;
$(this).bind("dblclick",function(event){console.log('Capture for ' + current.tagName + '#'+ current.id +
' target is ' + event.target.id);});
});
});
</script>
<body id="greatgrandpa">
<div id="grandpa">
<div id="pops">
<img id="example" src="designer/templates/thumbnails/2ColsTemplate.PNG" />
</div>
</div>
</body>
đầu ra trông giống như dưới đây
Capture for IMG#example target is example
Capture for DIV#pops target is example
Capture for DIV#grandpa target is example
Capture for BODY#greatgrandpa target is example
Capture for HTML# target is example
Khi tôi sử dụng event.stopPropagation();
xử lý sự kiện sẽ ngừng bong bóng sự kiện dblclick
.
Nhưng tôi có 2 câu hỏi cho nó. Theo thứ tự viết nhật ký, tôi đoán phương thức bind
làm cho sự kiện được kích hoạt trong bong bóng sự kiện (từ dưới lên trên đỉnh mái vòm) không phải trong phần sự kiện (từ đầu đến cuối). Một câu hỏi khác là có khả năng nào làm cho sự kiện được kích hoạt trong thời gian nắm bắt sự kiện không? cảm ơn.
cảm ơn.
Có, Như chúng ta có thể thấy trong nhật ký. nó đang sôi sục. từ dưới lên trên. –
ok. Tôi đạt được rồi . jquery chỉ hỗ trợ sự kiện bubbling. –
[Sự kiện hỗ trợ sự kiện hỗ trợ IE9 trở lên] (https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.removeEventListener#Browser_Compatibility). – Barney