problema parametro funzione addEventListener

ntoflip

Utente Attivo
26 Ago 2008
50
0
0
Ciao a tutti, è tutta la mattinata che non riesco a venire a capo di un problema che probabilmente ha una semplice soluzione..

Ho elaborato una galleria in cui al click di una freccia di scorrimento crea e aggiunge un div che contiene l'immagine successiva con createElement e appendChild, al div viene associata una funzione per l'ingrandimento visualizzaFoto(n), dove n è il numero dell'immagine, con addEventListener o semplicemente con
Codice:
div.onclick = function() {
			visualizzaFoto(n);
		}
Il mio problema è che nel momento in cui viene associata la funzione il parametro n non viene trasformato nel numero della foto ma rimane "n", per cui, dopo aver scrollato due o più immagini, su qualsiasi foto di quelle aggiunte io clicchi, n assume sempre l'ultimo valore assegnato visualizzandomi sempre l'ultima foto.:incazz2::incazz2:

Spero di essermi spiegato bene, confido nel vostro aiuto prima di impazzire
 
Ultima modifica:

ntoflip

Utente Attivo
26 Ago 2008
50
0
0
guarda il codice è abbastanza spezzettato ed è un po' complicato riprodurlo in sintesi..

cmq c'è il codice html con
Codice:
<div id="frecciasx" onclick="indietro()"></div>
<div id="galleria">
    // al caricamento della pagina vengono inseriti qui 6 div contenenti ciascuno un'immagine
</div>
<div id="frecciadx" onclick="avanti()"></div>

poi c'è il codice js
Codice:
var n = 0;

function avanti() {
    // qui c'è una chiamata ajax al db per ottenere l'immagine successiva
    // viene usata la variabile n come puntatore che viene aumentato lato php e restituito
}

function scorrimentoAvanti() {
    // la risposta Ajax viene processata qui:
    // ottengo il puntatore aggiornato
    n = n_risposta;                    // adesso n = 1
    // ottengo il percorso dell'immagine
    path = p_risposta;

    // viene creato un nuovo div
    div = document.createElement('DIV');
    div.onclick = function() {
        visualizzaFoto(n);         // questo è il punto cruciale!!!!
    }
    // creo un elemento immagine e lo inserisco nel div appena creato
    immagine = document.createElement('IMG');
    immagine.setAttribute('src', path);
    div.appendChild(immagine);
    document.getElementById('galleria').appendChild(div);
}

appena clicco sulla freccia dx per andare avanti il codice html si trasforma in

Codice:
<div id="frecciasx" onclick="indietro()"></div>
<div id="galleria">
    // qui ci sono le immagini caricate all'onload della pagina più la nuova immagine appena aggiunta:
    <div onclick="visualizzaFoto(n)"><img src="" /></div>
</div>
<div id="frecciadx" onclick="avanti()"></div>

dopo un ulteriore click sulla freccia dx (n = 2) avrò:

Codice:
<div id="frecciasx" onclick="indietro()"></div>
<div id="galleria">
    <div onclick="visualizzaFoto(n)"><img src="" /></div>
    <div onclick="visualizzaFoto(n)"><img src="" /></div>
</div>
<div id="frecciadx" onclick="avanti()"></div>

che equivale a

Codice:
<div id="frecciasx" onclick="indietro()"></div>
<div id="galleria">
    <div onclick="visualizzaFoto(2)"><img src="" /></div>
    <div onclick="visualizzaFoto(2)"><img src="" /></div>
</div>
<div id="frecciadx" onclick="avanti()"></div>

invece quello che desidero è che venga fuori:

Codice:
<div id="frecciasx" onclick="indietro()"></div>
<div id="galleria">
    <div onclick="visualizzaFoto(1)"><img src="" /></div>
    <div onclick="visualizzaFoto(2)"><img src="" /></div>
</div>
<div id="frecciadx" onclick="avanti()"></div>

il problema è che n, quando viene associata la funzione visualizzaFoto(n) rimane un parametro e non viene passato come il valore che ha n in quel momento.. le ho provate tutte tipo:
parseInt(n);
eval(n);
ma niente da fare.
 
Discussioni simili
Autore Titolo Forum Risposte Data
G [Javascript] Problema parametro passato con ajax Javascript 4
A problema con GET e parametro con [] PHP 3
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Y Problema incolonnamento tabella PHP 7
S problema salvataggio immagini Photoshop 0
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
D problema php mysql PHP 1
D problema php mysql PHP 1
M Problema Wi-Fi Linux Linux e Software 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
Daniele_Carrara Problema Aperture Mailup Email Marketing 5
F PROBLEMA ACCESSO INSTAGRAM Discussioni Varie 2
R Problema connessione db PHP 7
M problema if PHP 2
G Problema con Get page PHP 4
N Problema passaggio variabili tra pagine PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 1
H problema carrello woocommerce PHP 2
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
M Problema su query JOIN in tre tabelle PHP 0
S Problema esportazione tabelle Mysql in Excel PHP 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
M Problema su update di 3 tabelle PHP 1
T problema con select dinamica con jquery Javascript 0
A Problema checkout carrello php PHP 2
R Problema al server Domini 0
A Problema nel passare la variabile PHP 0
G Problema update di un database PHP 0
S Problema con spazi bianchi HTML e CSS 4
E Problema motore di ricerca FULL_TEXT PHP 0
Tommy03 Problema durata cookie PHP 5

Discussioni simili