2015-07-06 20 views
6

Tôi có DOM như thế nàyngăn chặn sự kiện bubling không hoạt động trong jquery

<div class="modal"> 
<li> 

<div id="block1"></div> 
<div id="block2"> 

<div class="btn-wrap"> 
<button>cancel</button> 
<button>save</button> 
</div> 

</div> 

</li> 

Tôi có một sự kiện nhấp chuột kèm theo li và khi tôi nhấp vào nút block2, sự kiện đó xảy ra. Làm thế nào để ngăn chặn điều đó xảy ra?

Tôi đã thử sử dụng on() nhưng nó không hoạt động.

$('.btn-wrap').on('click','button:first-child',function(e){ 
      e.preventDefault(); 
      alert('test'); 
     }); 

Trả lời

3

Bạn nên sử dụng stopPropagation để ngăn chặn sự kiện bọt:

$('.btn-wrap').on('click','button:first-child',function(e){ 
    e.stopPropagation(); 
    alert('test'); 
}); 
+0

ah stopPropagation(), quên cơn thế này! nó làm việc cảm ơn! btw nếu tôi không sử dụng on(), tôi ràng buộc sự kiện click trực tiếp và sử dụng stoPropagation, nó có hoạt động không? –

+0

vâng, nó hoạt động ... –

1

Thêm event.stopPropagation() để xử lý của bạn

$('.btn-wrap').on('click', 'button:first-child', function(e) 
{ 
    e.preventDefault(); 
    e.stopPropagation(); 

    alert('test'); 
}); 
Các vấn đề liên quan