elementi a livello di primo figlio jQuery slideDown
Domanda
Ho una classe di div ( 'aperto') la contengono un'altra classe di div ( 'articoli') in questo modo:
<div class="open">
<div class="item">
this is a test 1
</div>
<div class="item">
this is a test 2
</div>
</div>
Quello che sto cercando di fare è uno slideDown di tutti i div class 'item' che sono nella classe 'aperto' che ha cliccato.
Finora ho
$(document).ready(function () {
$('.open').click(function () {
$(this).find(':first-child').slideDown('1000');
});
, ma non funziona. Qualche suggerimento?
Grazie, John
Soluzione
Invece di :first-child
si desidera figli diretti , che si può ottenere in questo caso utilizzando .children()
, in questo modo:
$('.open').click(function () {
$(this).children().slideDown('1000');
});
:first-child
IS per ottenere il primo elemento figlio ad ogni livello (e in ogni "ramo"), .children()
o il selettore bambino (>
) sono per ottenere tutte le immediate / "figli di primo livello".
Altri suggerimenti
Come su
$(".open").click(function() {
$(this).children().slideDown(1000);
});
Per prima cosa, suppongo che si sta effettivamente chiudendo il $(document).ready
, dal momento che nel blocco di codice che hai postato, non è chiusa. Assicurati di farlo in codice.
In secondo luogo, non è vero solo in cerca di children()
di .open
? In questo caso si desidera
$(document).ready(function() {
$('.open').click(function() {
$(this).children('.item').slideDown('1000');
});
});
A cura :. Grazie ai commenti, ho rimosso il suggerimento live()