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
il mio codice è circa cosi circacodice: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);mi sono accorta che il problema è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*/;} }e non quello che viene dopo...infatti anche mettendo ad esempiocodice:document.getElementById(nomeDelete).onclickmi 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'ultimacodice:document.getElementById(nomeDelete).onclick=function(){alert('pippo');}
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!

Rispondi quotando

