Ho due div, uno che contiene alcune cose e l'altro con tutte le cose possibili. Cliccando su una delle div trasferirai gli oggetti all'altra div. Il codice mi è venuto in mente è:jQuery: un modo per "aggiornare" i gestori di eventi?
$("#holder > *").each(function() {
$(this).click(function(e) {
$(this).remove();
$("#bucket").append(this);
});
});
$("#bucket > *").each(function() {
$(this).click(function(e) {
$(this).remove();
$("#holder").append(this);
});
});
Questo funziona perfettamente, salvo che i gestori di eventi hanno bisogno di essere aggiornati una volta aggiungo o tolgo elementi. Quello che voglio dire è che, se per prima cosa clicco su un elemento, esso viene aggiunto all'altro div, ma se faccio di nuovo clic su questo elemento, non succede nulla. Posso farlo manualmente ma esiste un modo migliore per raggiungere questo obiettivo?
@ John: Grazie per la risposta. Non sono sicuro che mi manchi, ma quando sostituisco il mio codice con questo, non succede nulla. Sto usando jQuery-1.4.2.Mi sto perdendo qualcosa? Voglio dire, anche gli eventi iniziali non funzionano. – Legend
Questo non funzionerà. 'jQuery.fn.live' ha bisogno di un selettore con cui lavorare ... non può funzionare con' $ (this) '... – James
Immagino di sì. Sapevo che "questo" sta rovinando le cose. – Legend