2009-09-29 11 views
12

Quando aggiungo qualcosa della classe "myClass", voglio chiamare una funzione su questo elemento.Come eseguire un'azione quando un elemento viene aggiunto a una pagina utilizzando Jquery?

sarebbe qualcosa nelle linee di:

jQuery(".error_message").live("load",function(){ 
    alert("test"+this); 
}); 

... ma questa non esiste.

Qual è il modo migliore per farlo?

+0

Come si aggiungono gli elementi al DOM? – Colin

+0

Carico un nuovo codice html via Ajax e lo lancio nel DOM – marcgg

+0

Ci sono diversi modi in cui posso aggiungere questi elementi, ecco perché vorrei evitare di avere una richiamata su queste funzioni. – marcgg

risposta

16

La risposta breve e diretta alla tua domanda sarebbe "no può fare". Ma dal tuo commento pochi minuti fa, vedo che vuoi aggiungere elementi in modi diversi e avere un metodo unificato per gestire questi nuovi elementi aggiunti. Posso suggerire un altro approccio? Trigger custom events.

Il modo in cui avrebbe funzionato è come questo: ovunque si carica l'elemento errore messaggio, si aggiunge una riga quando è fatto:

$('.error_message').trigger('load'); 

Ora il vostro .Live ('carico' ...) cosa funzionerà.

+0

Questa è una risposta molto interessante. Non sono sicuro che sia quello che sto cercando ... sembra un po 'hacky. Ma non conosco abbastanza il jquery per dire a hacky che è fantastico. Quindi, diresti che questa è una buona pratica? – marcgg

+1

Garantisco per questo - c'è anche un buon articolo sul pool di eventi che ne parla a livello di documento: http://www.michaelhamrah.com/blog/index.php/2008/12/event-pooling-with -jquery-using-bind-and-trigger-manage-complex-javascript/ –

+0

qualche idea su come .live() fa quello che fa? – Kip

Problemi correlati