Newsgroup: it.comp.lang.javascript
Titolo: Aiuto funzione

Salve ragazzi buon anno a tutti, avrei la necessità di rendere questo 
onclick in una funzione esterna da richiamare con chiudi() la funzione 
dovrebbe eseguire questi comandi
onclick="new 
Effect.Squish('first-list_key<?=$array_colonna1[$elementi]?>');window.setTimeout('rimuovi(<?=$array_colonna1[$elementi]?>);crea(<?=$array_colonna1[$elementi]?>)',2500); 
"
vorrei invece di inserire tutto quel codice perfezionarlo richiamando 
una funzione esterna per la serie onclick="chiudi()" è possibile 
ricevere un vostro aiuto?
Grazie per l'attenzione e per una eventuale vostra collaborazione
Arrivereci e buon anno a tutti

 ricevere un vostro aiuto?
spiega meglio il contesto, per quel che io capisco basta copiare tutto ciò
che vi è dentro l'onclick in una function e richiamarla ... (non vedo
riferimenti a this o altre problematiche)
-- 
"e mai che mi sia venuto in mente
 di essere più ubriaco di voi
 di essere molto più ubriaco di voi"
									  F.D.A.

 
Ciao hai capito benissimo cosa intendo.
Il fatto è che ho provatoi a rachiudere la funzione dentro un metodo()
come vedi qui di seguito:
<script type="text/javascript">   
function chiuso() {  
new Effect.Squish('first-list_key<?=$array_colonna1[$elementi]?>'); 
window.setTimeout('rimuovi(<?=$array_colonna1[$elementi]?>); 
crea(<?=$array_colonna1[$elementi]?>)',2500);  }    </script>
richiamandolo poi cosi nel tag a:
<a href="#" onclick="chiuso()">x</a>
La funzione cosi' non funge.
Saluti a tutti
Grazie

 La funzione cosi' non funge.
"non funge" non vuol dir nulla, fai sapere l'errore di firefox.
Potrebbe essere un problema di ciò che scrive php, ma non so quale sia il
contesto server-side...
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 
Errore numero uno: Unterminated string literal window.setimeout('rimuovi();
Errore due: chiuso() is not defined
Grazie

 Errore due: chiuso() is not defined
hai sbagliato a dichiarare la function? oppure deriva dal primo errore ...
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

 
TI ALLEGO QUI IL LINK DEL SITO:wwww 
wikilab.it/prova
il file wikilab.js ha i metodi per creare e rimuovere gli elementi 
nell'html.
Ciao
grazie

 TI ALLEGO QUI IL LINK DEL SITO:wwww 
wikilab.it/prova
non è un problema client-side, ma server-side.
Hai un ciclo che, via php, scrive il parametro di "rimuovi", "crea" e altro
=> devi passare tale link alla function
del tipo onclick="click(<?=$array_colonna1[$elementi]?>)"
e la tua function onclick(val) {
dovrai ovviamente sostituire le chiamate php con val nella tua function.
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.

 
Ho provato cosi':
function chiuso(<?=$array_colonna1[$elementi]?>)
{  
new Effect.Squish('first-list_key<?=$array_colonna1[$elementi]?>'); 
window.setTimeout('rimuovi(<?=$array_colonna1[$elementi]?>); 
crea(<?=$array_colonna1[$elementi]?>)',2500);  
}
Ma non funziona ugualmente, restituendo sempre lo stesso errore.

 }
non è quello che ti ho scritto ...
il valore server-side va messo come parametro da passare alla function (e
la function riceve un parametro, che avevo chiamato val). E devi
sostituire, nel corpo della function, tutta la parte php con val.
-- 
"qualcuno è andato per età
 qualcuno perchè già dottore
 e insegue una maturità, si è sposato, fa carriera
 ed è una morte un po' peggiore"
									    F.G.

 
function chiuso(elemento) {  window.setTimeout(rimuovi(+elemento); 
 crea(+elemento) , 2500)  }
Adesso funziona ma se metto il window.setTimeout non mi funzia +.

 Adesso funziona ma se metto il window.setTimeout non mi funzia +.
non vedo altri problemi nella function (se togli il setTimeout togli tutto,
per forza "funziona" ...)
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 
Se tolgo la + non funziona niente.
<script type="text/javascript">   function chiuso(elemento) { 
Effect.Squish('first-list_key'+elemento); 
window.setTimeout(rimuovi(+elemento);  crea(+elemento) , 2500);  } 
   </script>
Questo è l script che sto usando io se imposto window.setTimeout il 
metodo non viene eseguito.
Errore: missing)after argument list rimuovi(+elemento);
Ti ringrazio della tua disponibilità.
Forse sbaglio a passagli i parametri?

 Errore: missing)after argument list rimuovi(+elemento);
esatto: nella tua function hai le virgolette mentre qua sono scomparse ...
 ...setTimeout('rimuovi('+elemento+');crea .........',2500)


Cristiano Larghi ha scritto:

Ho provato a passare
 function chiuso(elemento) {  new 
Effect.Squish('first-list_key'+elemento+); 
window.setTimeout('rimuovi('+elemento+');  crea('+elemento+')' , 2500)  }
new Effect.Squish('first-list_key'+elemento+); 
window.setTimeout('rimuovi('+elemento');  crea('+elemento')' , 2500)  }
 function chiuso(elemento) {  new 
Effect.Squish('first-list_key'+elemento+); 
window.setTimeout('rimuovi(+elemento);  crea(+elemento)' , 2500)  }
Con nessuna delle tre soluzioni ho riscontrato alcun esito positivo.

 window.setTimeout('rimuovi(+elemento);  crea(+elemento)' , 2500)  }
errato, manca la chiusura delle virgolette
