Sto facendo un sito Flash-like usando Scriptaculous. Nella pagina principale ho inserito un menu "chi siamo - dove siamo - contatti" che fa apparire tre diversi div informativi. I div si possono chiudere cliccando sull'apposita crocetta ma vengono chiusi anche cliccando su un'altra
voce del menu. Infatti, utilizzando gli script che troverete più avanti, ho fatto in modo che ad ogni apparizione di div venisse impostata una variabile con l'id del div aperto. Questa variabile viene usata per chiudere il div visibile e aprire quello nuovo. Se la variabile è null si chiude il div principale che contiene i link alle due pagine più imporatanti del sito. Questo è il codice

Script:


function setPage(id) {
page = id;
}

function hidePage(id) {
if (page != null) {
Effect.Fade(page, {queue:'front', scope:'menuMB', limit: 1});
} else {
Effect.Fade('menucollection', {queue:'front', scope:'menuMB', limit: 1});
}
}

function ShowPage(id) {
Effect.Appear(id, {queue:'end', scope:'menuMB', limit: 1});
}

Menu
<div id="menu-MB">
<ul>
[*]chi siamo
[*]dove siamo
[*]contatti
[/list]
</div>

Gli "Effect.Fade(pres...)" servono perché il primo dei div (chi siamo) contiene quattro div anch'essi nascosti che vengono sfogliati sempre ricorrendo a scriptaculous con il codice inserito direttamente nell'evento onclick del link.

Per motivi che nopn sto a spiegarvi per non dilungarmi ulteriormente (e inutilmente), ho bisogno di raggruppare le tre funzioni viste sopra in un unica funzione

function FlipPage(id) {

alert('FlipPage');

if (page != null) {

alert('null');

new Effect.Fade(page, {queue:'front'});

new Effect.Appear(id, {queue:'end'});

page = id;

} else {

alert('menucollection');

new Effect.Fade('menucollection', {queue:'front'});

new Effect.Appear(id, {queue:'end'});

page = id;

}
}

così chiamata nel codice

[*]chi siamo


Bè, non so perché, ma questa funzione non funziona: semplicemente non succede nulla!

Vi prego, c'è qualcuno che sa darmi una dritta?