jquery

2010-11-28 13 views
5

Bunu yapmaya çalışıyorum ama hayır şans şimdiye kadar kimse tıklama üzerinde bir öğe seçmek ama içinde .box gibi belirli div elemanları ve tüm içeriği kapsamaz nasıl biliyor mu o div .boxjquery

küçük güncelleme: yanıtlar için teşekkür ederim ama ben :not veya hasClass kullanıyorum eğer o foo içindeki elemanlar seçilecektir olmayacaktır emin olmaz. gibi: değil() seçici: Ayrıca kullanabilirsiniz

$('a').click(function() { 
    if (!(this).hasClass('foo')) { 
     // the clicked element doesn't have the foo class   
    } 
    return false; 
}); 

cevap

8

Sen hasClass() yöntemi kullanabilirsiniz. Eğer belirtilen konteynerin içinde <li> hedeflemek istediğiniz gibi, belirli bir hedef elemanları varsa

$("#mydiv:not(.box)").click(function(){ 
    //do something 
}); 

, o zaman bu ideali olmalıdır: Bu sadece <li> için tıklayın() işlevini uygulamalıdır

$("#mydiv:not(.box)>li").click(function(){ 
    //do something 
}); 

değil kapsayıcının alt öğe .box sınıf var. Size varsayarsak

+0

Bu işe yarıyor! eğer (! domEl.closest ('div'). hasClass ('kutu')) – Dejan

+0

Sadece jquery ui dialog ile çalışmasını alamıyorum, sanırım diyaloglar nasıl kurulduğundan, ekrana sahip olduklarından: yok, yani kullanamıyorum &&! domEl.closest ('div'). hasClass ('ui-dialog') – Dejan

5

:

<div class=foo>this won't be selected <span>this will</span></div>

1

çapa arıyorsanız, bu bunu kolaylaştırmak için İşaretlemenizi yeniden factoring öneririm ... Ancak

$(":not(.box) a").click(function() { 
    // your code here 
}); 

çalışmalıdır. Örneğin, her bir öğeye açıkça tıklanabilir/silinmez bir sınıf yerleştirebilirsiniz.