Originariamente inviato da dwj
Ciao, questa è la versione più semplice dello script che ti serve:

codice:
$(document).ready(function () {

    $('dd').hide();
    $('dt a').click(function () {
          $(this).parent().next().slideToggle();
    })

});
Tieni conto di due questioni:

1) poichè nascondi i dd al DOMready, potresti imbatterti in un "effetto flash" in cui vedresti inizialmente i dd aperti (finché il documento si carica) e solo successivamente li vedresti scomparire. In tal caso ti conviene nascondere gli elementi via CSS

2) con questo script le coppie dt/dd sono indipendenti, se volessi realizzare un effetto accordion (solo un elemento aperto alla volta) devi modificare lo script in questo modo:

codice:
$(document).ready(function () {
    var $dds = $('dd');
    
    $dds.hide();
    
    $('dt a').click(function () {
          var $dd = $(this).parent().next();
        
        $dds.not($dd).slideUp();
        $dd.slideToggle();
    });
});
Ho creato un esempio dinamico su jsfiddle.net
Grazie 1000000

un'ultima cosa per favore,

è possibile applicare una classe al dt cliccato ?

inoltre c'è un modo per non far salire a inizio pagina dopo il click ?

grazie !

p.s. con firefox non va