Ciao a tutti,
spero sia la sezione giusta per un quesito jquery.
Ho un layout composto da <div>, gestiti con css:
header, 3 colonne ("colsx", "main" e "coldx"), footer.
<main> contiene <content> nel quale inserisco il contenuto delle varie pagine.
<colsx> e <coldx> al caricamento della pagina adattano la propria altezza in base all'altezza di <main>.
codice:
$(function(){
$("#colsx").css('height',$("#main").css('height'));
$("#coldx").css('height',$("#main").css('height'));
}
Nella colonna centrale ho creato un giochino di testi a comparsa: clicchi su "leggi la risposta" e viene mostrato un <div> nascosto (#uno_aperto). Clicchi su "chiudi" e il <div> scompare.
codice:
$("#uno_apri").toggle(
function (){
$("#uno_apri").text("(chiudi)");
$("#uno_aperto").show("fast");
},
function (){
$("#uno_apri").text("(leggi la risposta)");
$("#uno_aperto").hide("fast");
}
Funziona ma...problema: la comparsa di <#uno_aperto> fa allungare <content> e di conseguenza <main>, ma le colonne non si adattano all'altezza della pagina.
Ho provato questa variante (per la sola colonna sx): intercettare l'altezza di <content>, infilarla in una variabile e gestire l'altezza di <colsx> in base a questa variabile.
Funziona...ma solo al SECONDO click!!!
Cioè: clicco su "leggi la risposta", appare <#uno_aperto>, <content> e <main> si allungano, ma colonna ferma.
Clicco su "chiudi", mi esce l'alert che ho inserito, <#uno_aperto> non scompare ma la colonna si adatta correttamente.
codice:
$("#uno_apri").toggle(
function (){
$("#uno_apri").text("(chiudi)");
$("#uno_aperto").show("fast");
},
function (){
var test = parseInt($("#content").css('height').toString());
alert (test);
$("#colsx").css('height',(test));
},
function (){
$("#uno_apri").text("(leggi la risposta)");
$("#due_aperto").hide("fast");
},
function (){
var test = parseInt($("#content").css('height').toString());
alert (test);
$("#colsx").css('height',(test));
}
)
Credo sia un problema di posizione delle funzioni ma non ne vengo a capo da alcune ore.
Qualcuno saprebbe aiutarmi?
Se necessario posso mandare le pagine via mail.
Grazie a tutti, come sempre.