jQuery gestione degli attacchi degli eventi

2

Dati i seguenti elementi:

<div class="container">
  <span class="some-class">content</span>
  ..n span repetitions..
</div>

Dato il seguente .on ()

$('.some-class').on('click', function () { ... });

Se ridisegni il .container con il nuovo span.some-class , perderai i vecchi eventi?

Quello che intendo è, prima del ridisegno, dovresti fare:

$('.some-class').off('click');

Grazie!

    
posta dardo 24.12.2014 - 00:53
fonte

1 risposta

2

Se alleghi il listener di eventi in questo modo:

$(document).on({
    click: function () {
        // ...
    }
}, '.some-class');

Quindi il listener di eventi non "perde" mentre lo metti. Puoi ridisegnare, aggiungere ulteriori elementi con .some-class e erediteranno tutti il listener di eventi. Questo ha il vantaggio di registrare solo un listener di eventi anziché gli ascoltatori "x" a seconda di quanti elementi di .some-class ci sono. Prestazioni molto migliori.

    
risposta data 02.01.2015 - 07:03
fonte

Leggi altre domande sui tag