Salve a tutti,
come prima cosa mi voglio scusare per il titolo che ho dato a questo post, ma é complicato spiegare il problema a parole, meglio andare per esempi.
Uso ormai jquery (fantastico) da parecchio tempo e se c'é una cosa che mi da sempre problemi, é l'assegnazione di un evento, all'interno di un ciclo each...
Mi spiego meglio...
ho per esempio n link con una class assegnata "test":
vorrei assegnare un evento click ad ogni link, per esempio, il codice javascript é il seguente:codice:<a class="test">link</a> <a class="test">link</a> <a class="test">link</a> <a class="test">link</a>
il risultato é sempre 4... praticamente 'this' non si riferisce solo all'elemento che sto ciclando ma a tutti, ed é come se sovrascrive l'ultimo evento a tutti i link...codice:var conta = 0; link = $(".test"); $.each(link, function(){ $(this).click(function(){ alert(conta); }); conta++; });
Vorrei capire come perché accade questo, teoricamente 'this' dovrebbe riferirsi all'elemento n di un ciclo, ma non mi sembra che sia cosí, alemno questo accade quando assegno degli eventi.
Premetto che il problema l'ho comunque risolto ma assegnando dinamicamente un id ad ogni link (quindi evitando di usare 'this'), ma mi sembra macchinoso come sistema.
Ciao e grazie, MAX

Rispondi quotando