2009-09-07 30 views
5

ı aşağıdaki kodu var diyelim 's çocuklar tarafından tetiklenen edilmemelidir Çocuk div'a tıkladığımda etkinliği tetiklemenin kolay bir yolu? Ben çocuk div bağlantılar içerir çünkü ...tıklama etkinlik

Teşekkür şey

gibi
$('#child').click(function() { return false; }); 

yapmak istemiyorum!

cevap

8

event target'u kontrol edin.

Aşağıdaki kod test edilmemiştir.

var div = document.getElementById('parent'); 
jQuery(div).click(function(event) { 
    if (event.target !== div) { 
    return false; 
    } 
}); 
+0

test ... Bu soru o her çocuğun bir öğeye etkinlik eklemek istemediğini söylüyor –

2

stopPropagation

$('#child').click(function(event) { 
     event.stopPropagation(); 
     //... 
}); 
+0

çalışır. – Quentin

+0

@David Dorward, Burada ne diyor? "çocuk div bağlantıları içerebileceği için ..." –

+1

Sadece bu yanıtı birazcık korumak için: stopPropagation kullanıldı, fakat preventDefault değildi, yani tıklatmaya atanmış bir işleyiciniz olsa bile bağlantılarınızın hala tetikleneceği anlamına gelir. jQuery, varsayılan davranışın ve önceden atanan tüm işleyicilerin (yani html ile satır içi) beklendiği gibi çalıştığından emin olmak için olay işleyicileri ekleyen yol hakkında son derece kolaydır. –