PDA

View Full Version : [Javascript] Richiamare una funzione dando come parametro una variabile


XSonic
02-01-2007, 23:01
Risolto: Soluzione al post 3 :D
Problema 2: (http://www.hwupgrade.it/forum/showthread.php?p=15358436) Risolto :D
Problema 3: (http://www.hwupgrade.it/forum/showthread.php?p=15358436#post15358436) Chi mi aiuta? :stordita:

La funzione che devo richiamare è questa
var classi= Array('m0','nomediv1','nomediv2','nomediv3','nomediv4','ecc');
function mostra(id){
for (indice=0;indice<20;indice++){
if (indice==id){
document.getElementById(classi[indice]).style.display = ''; }
else{
document.getElementById(classi[indice]).style.display = 'none'; }
}
}
Serve per una navigazione a TAB

Normalmente funziona così:
<a href="java-script:mostra('1');">
... ma vorrei richiamarla così
<a href="java-script:mostra(variabile);">
... solo che non funziona...

Sto entrando ora nella programmazione in JS, non siate crudeli :stordita:

wingman87
02-01-2007, 23:05
variabile di che tipo è?

XSonic
03-01-2007, 00:05
EVVAI! La cosa strana della programmazione è che da frustrazione e soddisfazione allo stesso tempo :ciapet:

La variabile dovrebbe essere di tipo int

Cmq ho risolto:
quello che ho scritto in realtà funziona però non riuscivo ad impostare quella variabile.

Io scrivevo
<a onClick="funzione1(parametro);variabile=1;">
e non so come mai il valore di variabile non cambiava.

Ora ho visto che scrivendo in quest'altro modo funziona:
<a onClick="variabile=1;funzione1(parametro);">

Quello che volevo ottenere infine era assegnare il valore della variabile all'interno di funzione1, in questo modo:
<a onClick="funzione1(parametro,variabile);">
però il valore di variabile naturalmente rimaneva all'interno della funzione e non riuscivo ad utilizzarlo in funzione2

Ho risolto scrivendo la funzione1 in questo modo:
function funzione1(parametro,variabile){
funzione3(parametro);
window.variabile = variabile; //questo per assegnare il valore della variabile locale a quella globale
}
e quindi richiamandola semplicemente con
<a href="javascript:funzione2(variabile);">LINK</a>


##########################################
Se a qualcuno interessa la vera funzione e il suo utilizzo:
//questa parte per la gestione dei tab
var classi= Array('m0','main','hotel','rist','gall','map','plist','cont','form','foto','foto2');
function mostra(id){
for (indice=0;indice<20;indice++){
if (indice==id){
document.getElementById(classi).style.display = ''; }
else{
document.getElementById(classi[indice]).style.display = 'none'; }
}
}
// fine parte gestione tab

//questa parte per cambiare indirizzo ad un immagine
function ChangeImg(img,bk){
document.foto.src='img/wait.gif';
//immagine temporanea leggera che indica il caricamento, serve per far scomparire velocemente quella vecchia mentre si carica quella nuova

document.foto.src=img;
//da qui cambio l'indirizzo dell'immagine 'foto' con il valore di img
window.bk = bk; //questa variabile viene usata per indicare il "tab di provenienza", guarda più avanti
mostra('9'); //per visualizzare il tab 9
}

Nel tab 1 (che sarebbe un Div) scrivo:
[I]<a href="#" onclick="ChangeImg('img/main.jpg','1')">Visualizza immagine</a>
Cliccando qui:
cambio l'indirizzo dell'immagine foto, vado al tab 9 ed indico il tab di provenienza (sono nel tab 1 attualmente)

Ora nel tab 9 appare
<a href="javascript:mostra(bk);">Torna indietro</a>
che semplicemente ci riporta al tab di provenienza dichiarato prima ;)

##########################################

Spero che sia utile anche a qualcun'altro :D
Se volete vederlo in azione basta dirlo per il link in PM (è per un sito commerciale)