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
I Sto progettando nuovi siti utilizzando bootstrap e devo dire funziona bene, l'unico problema e la maschera -moz- HTML e CSS 0
K Problema form update PHP 2
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
S Problema nel ciclare un json Javascript 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
K Problema Inner join PHP 1
F firefox problema http Linux e Software 0
N Problema con position absolute e overflow HTML e CSS 4
E Problema jquery Success jQuery 2
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
E problema selezione sfumata Photoshop 2
K [PHP] Problema con variabili concatenate. PHP 1
A Problema filtro fluidifica Photoshop Photoshop 1
H Problema Bordi Scontorno Photoshop 1
O problema con query PHP 4
R Problema installazione Realtek WiFi USB rtl8821 Reti LAN e Wireless 1
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
Y Problema percorso file in rete PHP 1
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
P Problema acquisizione clienti Webdesign e Grafica 1
F NetBeans problema creazione progetto Java Windows e Software 0
M Problema con Try Catch PHP 0
C problema seo + cerco esperto SEO e Posizionamento 11
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
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
R problema con else PHP 0
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

Discussioni simili