[Web2.0] [jquery] Ottenere informazioni di dimensioni dopo un effetto

Giovanni Battista Lenoci gianiaz a gianiaz.net
Gio 26 Lug 2007 14:01:50 CEST


Ciao, ho una lista di news, per le quali mostro solo il titolo, tramite 
jquery mostro con l'effetto "show" un <p> che contiene il testo completo 
della news.
Le news stanno in un div ad altezza fissa, e vorrei gestire lo scroll 
tramite 2 bottoni anzichè usare l'overflow auto del browser.
Quindi quello che cerco di fare è ottenere le dimensioni della lista 
dopo che è stato aperto il paragrafo.

Ecco un po' di codice:

#news_+id è l'id del blocco di testo della news che voglio aprire,
.surprise è la classe assegnata a tutti i blocchi di testo completo 
della news
#news_list è la lista che contiene i link e i blocchi di testo
#news_patologia è il div con altezza fissa

Con la funzione showcontroller voglio mostrare le frecce solo se il 
contenuto supera le dimensioni del div.

function openclose(id) {
  $('.surprise').hide('slow');
  $('#news_'+id).fadeIn('slow', showcontroller());
}

function showcontroller() {
  // Rileva la dimensione massima del box
  objheight = $("#news_list").height();
  alert(objheight);
  // Faccio scomparire il navigatore se le dimensioni stanno nel box
  if(objheight < parseInt($("#news_patologia").height())) {
    $("#down_p").hide();  $("#up_p").hide();
  } else {
    $("#down_p").show();  $("#up_p").show();
  }
}

Il problema che riscontro in questo metodo è che al click di apertura 
della news mi viene restituita la dimensione della lista prima che 
questa sia aperta (quindi non riesco a mostrare i controlli), e cosi 
anche quando chiudo la news mi viene restituita la dimensione della 
lista prima della chiusura.
In pratica è come se showcontroller venga eseguita prima dell'effetto di 
apertura/chiusura.

Ho provato sia con la funzione di callback (come l'esempio riportato) 
sia richiamando la funzione in un istruzione successiva, ma il risultato 
è sempre lo stesso.

Un'altro quesito OT, su googlegroups non ricevo le mail che ho spedito 
io, come avviene in questa lista, e non so se è una cosa normale, o se 
le mie mail non arrivano alla lista di jquery inglese...

Ciao e grazie per ogni suggerimento.

-- 
gianiaz.net
di Giovanni Battista Lenoci 
P.le Bertacchi 66 
23100 Sondrio
cell. +39.347.7196482



Maggiori informazioni sulla lista Web2.0