jQuery .con funzione per elementi futuri, come .live è deprecato

Devo aggiungere un gestore per l’evento click di futuri

elementi, che non esistono ancora. Normalmente, utilizzerei la funzione .live di jQuery per gestirlo, ma sembra che ora sia deprecato a favore di .on .

Per utilizzare il metodo .on in questo modo, jQuery suggerisce di impostare il parametro selector, per consentire la creazione di un evento delegato e offre questo codice di esempio:

 $("#dataTable tbody").on("click", "tr", function(event){ alert($(this).text()); }); 

Va bene e tutto bene, ma cosa devo fare per il mio selettore iniziale, dove hanno #dataTable tbody ? Si noti che $.on() non funziona.

La documentazione di jQuery mostra che dovresti sostituire

 $(selector).live(event, handler) 

con

 $(document).on(event, selector, handler). 

Inoltre hai la possibilità di essere più preciso e sostituire $(document) con un selettore per un elemento padre statico dell’elemento. Ad esempio, se hai un elemento di table statico e gli elementi tr vengono aggiunti dynamicmente al DOM, potresti fare qualcosa come $('table#id').on('click', 'tr', ...)

http://api.jquery.com/live/

L’ho appena scoperto non appena ho postato questa domanda … Mi dispiace per quello!

Il selettore iniziale può essere un qualsiasi elemento genitore. Poiché i miei elementi saranno figli diretti del corpo, posso usare il body per il selezionatore:

 $('body').on('click', '.my_class', function(event) { ... 

Funziona perché gli eventi stanno per esplodere. Questo è essenzialmente normale bubbling con un filtro extra di .my_class .