2013-10-18 11 views
7

Bugün JQuery ile aklımı kaybetmeye başlıyorum, diğer soruları araştırıyorum ama şimdiye kadar işe yaramadı. Basit html yapısına (for döngüsünde dinamik olarak eklenmiş) sahibim. Ben bağlamak "on" yöntemini kullanıyorumSeçici üzerindeki Jquery click olayı, çocuğu hedef olarak döndürür

<div id="cell'+i+'" class="cell emptyCell"> 
    <div class="handle"></div> 
    <div class="content"></div> 
</div> 

özel bir işlevle sınıf ".emptyCell" nin elemanlarının "olayı click".

$(document).on('click','.emptyCell', function(e){ 

    console.log(e.target.id); 

}); 

Ama kullanıcı .content div (emptyCell çocuğu) tıkladığında .content elemanlar burada kimlikleri olmadığı için, bu olayı yakalar ve konsol baskılar "tanımsız".

Bu nasıl mümkün olabilir? .on işlevinin yalnızca .emptyCell sınıfının öğelerini bağlaması gerekmez mi? o zaman kullanabilirsiniz emptyCell başvurmak istiyorum Yardımlarınız

+0

Sanırım öyle değil, sanırım üst üste geliyorlar ve hedef ini'ye atıfta bulunuyor tial olayı – webaba

cevap

20

e.target için

sayesinde tıklayın (o handle veya content unsurları olabilir) oldu gerçek element anlamına gelir this veya e.currentTarget

$(document).on('click','.emptyCell', function(e){ 
    console.log(this.id); 
    console.log(e.currentTarget.id); 
}); 

Demo: Fiddle

+0

cevabında açıklandığı gibi çok teşekkürler! Şimdi daha iyi anlıyorum ... – webaba

+0

Teşekkürler, açık bir şekilde açıkladınız – pastullo