2012-12-20 6 views
5

Avere un codice come questo, mi chiedo se ho eseguito questa funzione una seconda volta, quale scenario accadrà:Durante lo svuotamento di un tag, i pulsanti collegati all'evento all'interno recuperano i dati inutili?

  1. Durante lo svuotamento della tag #deals, tutti btn all'interno otterrà spazzato via così, nonostante l'evento su di loro e la vita è buona.
  2. Devo annullare l'iscrizione a quelli btn prima, altrimenti svuotare i tag #deals in una perdita di memoria?
  3. voce dell'Elenco

Codice:

function test(){ 
    var row = $(this).closest('tr'); 
    $(row).find('#deals').empty(); 

    $(result).find('#tab li a').each(function() {    
     var btn = $('<a/>', {class: 'btn', href: '#'}); 

     $(row).find('#deals').append(btn); 

     btn.click(function(event){ 
      event.preventDefault(); 
      ... 
     }); 
    }); 
} 

risposta

3

Non devi Annullare:

Per evitare perdite di memoria, jQuery rimuove altri costrutti quali dati e gestori di eventi dagli elementi figlio prima di togliere le elementi stessi.

(da the documentation)

3

No perdita di memoria.

Come si può vedere in jQuery source, si occupa di pulire tutto.

+0

+1 per voi per il link ... non ho saputo questo strumento e che sto utilizzando sempre Ctrl + F per analizzare il codice ... –

+0

@dystroy eh :) Ha un successore anche se afaik, non riesce più a trovarlo. Inoltre, non ha tutti i metodi. La fonte di Github a volte è migliore. –

Problemi correlati