Come associare alcune funzioni a elementi inesistenti?
-
05-07-2019 - |
Domanda
Il mio problema: dopo aver caricato alcuni elementi tramite ajax, associo alcune funzioni al clic, ma quando l'utente caricherà alcune volte lo stesso elemento, l'azione associata verrà ripetuta (non sostituirla, almeno come appare). Ho provato unbind
o click(function(){return false;});
ma che completa la rimozione dell'azione clic dall'elemento ...).
Qual è la soluzione standard di questo tipo di problema?
Soluzione
Per la maggior parte degli eventi è possibile utilizzare live()
(jQuery 1.3 +):
$("td").live("click", function() {
// do stuff
});
Questo vincolerà un evento click a <td>
elementi che diventano esistenti anche dopo aver eseguito questo codice.
Questa è una soluzione molto più pulita rispetto al tentativo di legare / separare e assicurarsi di non avere lo stesso evento associato due volte a un elemento particolare.
Altri suggerimenti
se stai usando jQuery 1.3.2, puoi usare $('').live('click', function() {});
per avere qualsiasi elemento che corrisponda a quel selettore. Mantiene l'evento anche con nuovi elementi.