2017-09-16 17 views
6

Trong HTML của tôi ở đâyonclick trên tài liệu và không cụ thể yếu tố Alert

$(document).click(function(){ 
 
    alert('Document Clicked'); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body> 
 
    <button type='button'>CLICK [NO ALERT]</button> 
 
    <button type='button'>ME[NO ALERT]</button> 
 
</body>

Trong mã của tôi ở đây, Làm thế nào để ngăn chặn cảnh báo hiển thị lên nếu tôi nhấp vào các nút, Nhưng bất cứ điều gì ngoại trừ các nút có thể được cảnh báo.

Trả lời

6

Bạn có thể thêm một click nghe trên mà cụ thể <button> và ngăn chặn sự lan truyền của sự kiện:

$(document).click(function(){ 
 
    alert('Document Clicked'); 
 
}) 
 
$('.not-clickable').click(function(e) { 
 
    e.stopPropagation(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body> 
 
    <button type='button'>CLICK [NO ALERT]</button> 
 
    <button type='button' class="not-clickable">ME[NO ALERT]</button> 
 
</body>

Một tùy chọn khác là để kiểm tra xem các yếu tố đó được nhấp là nút cụ thể:

$(document).click(function(e){ 
 
    if (e.target.classList.contains('not-clickable')) { 
 
    return; 
 
    } 
 
    alert('Document Clicked'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body> 
 
    <button type='button'>CLICK [NO ALERT]</button> 
 
    <button type='button' class="not-clickable">ME[NO ALERT]</button> 
 
</body>

+0

Tôi thêm một ví dụ khác, tôi hy vọng nếu bạn có thể kiểm tra nó, Vì nó sẽ chỉ sử dụng tùy chọn thứ 2 bạn chỉ sử dụng, Chỉ cần để làm mát sự khác biệt – AXAI

+0

Tôi không thực sự hiểu cập nhật của bạn. Nếu bạn muốn cảnh báo chỉ nhấp chuột vào nút 'chỉ cần xóa' $ đầu tiên (tài liệu) .click ... ' – Dekel

+0

Đừng bận tâm tôi, Bạn nói đúng, Chỉ cần nhận ra đó chỉ là một bổ sung lặp đi lặp lại – AXAI

0

thử nó

$("#SomeElementId").click(function(e) { 
 
    //do something 
 
    e.stopPropagation(); 
 
})

0

Thử <button type='button' onclick="event.stopPropagation()">CLICK [NO ALERT]</button>. Theo mặc định, các sự kiện nhấp chuột được kích hoạt thành phần tử cha, nhưng event.stopPropagation(), giữ nó chỉ là nguồn gốc của sự kiện.

Các vấn đề liên quan