Ho un accordion, in cui tutto funziona okay.
Questo il codice JQ:
codice:
$('.offers').toggleClass('inactive-header'); var contentwidth = $('.accordion-header').width();
$('.slideoffers').css({'width' : contentwidth });
$('.offers').click(function () {
if ($(this).is('.inactive-header')) {
$('.active-header').toggleClass('active-header').toggleClass('inactive-header').next().slideToggle().toggleClass('open-content');
$(this).toggleClass('active-header').toggleClass('inactive-header');
$(this).next().slideToggle().toggleClass('open-content');
var id = this.attr('id');
scrollToAnchor('id');
} else {
$(this).toggleClass('active-header').toggleClass('inactive-header');
$(this).next().slideToggle().toggleClass('open-content');
scrollToAnchor('topoff');
}
});
return false;
Quel che mi serve è che, al click di apertura, usando la funzione scrollToAnchor la pagina scrolli portandosi in testa all'elemento cliccato.
Quando clicco per chiudere, invece, mi porti in testa a tutto il blocco.
Quest'ultima cosa funziona, perchè definisco in modo assoluto l'ancora a cui fare riferimento, mentre per la prima parte no.
Ogni elemento con classe offers (quelli che cliccati aprono lo slide) ha un id, e ciascuno contiene un ancora con nome uguale. Ad esempio, l'elemento con id="op1", contiene un ancora <a name="op1"></a>. Però, usando
codice:
var id = this.attr('id');
scrollToAnchor('id');
o anche
codice:
var id = $(this).attr('id');
scrollToAnchor('id');
non succede nulla, segno che non ha individuato l'id - e quindi l'ancora.
Come fare?