Ciao, ho un bel problemino...
premetto che penso c'entrino le closure ma non ne sono certa (so poco delle closure)...
ho una pagina dove le persone possono aggiungere div per dire se parlano una lingua in piu, con l'immagine +, e questa mi crea appunto il div che contiene la select, il livello della lingua e l'immagine x, per eliminare tutto il div.
Come eliminare il div l'ho capito e funziona, l'unico problema l'ho quando devo assegnare l'evento onclick all'immagine x, nel momento dell'onclick sul +.
In pratica mi consente di eliminare solo l'ultima div, e non quelle precedenti, anche usando il metodo della closure in questo modo
codice:
document.getElementById(nomeDelete).onclick=(function(index){return function(){var elPadre=index+1; var dl='deleteL'+index; var sl='selectLingua'+elPadre; eliminaQC(dl,sl); numLingue=numLingue-1;}})(numDelete);
il mio codice è circa cosi circa
codice:
window.onload=function(){ document.getElementById('add').onclick=function(){/*tutto codice prima per creare div e via dicendo*/ var nomeDelete='del'+numLingue; /*codice per creare tag imma*/ document.getElementById(nomeDelete).onclick=/*codice per eliminare div con closure*/;} }
mi sono accorta che il problema è
codice:
document.getElementById(nomeDelete).onclick
e non quello che viene dopo...infatti anche mettendo ad esempio
codice:
document.getElementById(nomeDelete).onclick=function(){alert('pippo');}
mi va sempre e comunque l'ultimo, penso che il problema sia che nomeDelete varia per ogni x, per dire una x è nomeDelete='del1' la successiva 'del2' ecc...e probabilmente mi prende solo l'ultima
cosa strana però, pensavo che l'evento onclick fosse registrato fisso, cioè se io schiaccio +, lui mi crea il div e la x, e appena creato ok, poi ne creo un altro (prima poniamo 'del3' ora 'del4') e il del3 non mi va più e ovviamente nemmeno i precedenti, va solo l'attuale del4 e perciò sembrerebbe una specie di variabile l'onclick...
c'è un modo per far si che nomeDelete sia preso "fisso" e che non vari di momento in momento? Cioè c'è un modo per impostare un evento onclick per ogni immagine usando
codice:
document.getElementById(nomeDelete)
?
Ringrazio in anticipo per l'aiuto!