2009-09-29 6 views
12

Kiedy dodaję coś z klasy "myClass", chcę wywołać funkcję tego elementu.Jak wykonać czynność, gdy element jest dodawany do strony przy użyciu Jquery?

To byłoby coś w linii:

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

... poza tym nie istnieje.

Jaki jest najlepszy sposób na zrobienie tego?

+0

Jak dodajesz elementy do DOM? – Colin

+0

Załaduję nowy html przez ajax i wyrzucam go do DOM – marcgg

+0

Są różne sposoby dodawania tych elementów, dlatego chciałbym uniknąć wywołania zwrotnego tych funkcji. – marcgg

Odpowiedz

16

Krótka, bezpośrednia odpowiedź na twoje pytanie brzmi "nie da się zrobić". Ale z twojego komentarza kilka minut temu widzę, że chcesz dodać elementy na różne sposoby i mieć jedną zunifikowaną metodę obsługi tych nowo dodanych elementów. Czy mogę zaproponować inne podejście? Trigger custom events.

Sposób to działa to tak: wszędzie załadować element błędów wiadomość, należy dodać jedną linię, kiedy to zrobić:

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

Teraz twój .live („load” ...) rzeczą będzie działać.

+0

To bardzo interesująca odpowiedź. Nie jestem do końca pewien, czy tego właśnie szukam ... wygląda trochę na zjadliwego. Ale nie wiem, jquery wystarczy powiedzieć hacky z niesamowitym. Czy uważasz, że to dobra praktyka? – marcgg

+1

Będę za to ręczyć - jest też dobry artykuł na temat łączenia wydarzeń, który mówi o tym na poziomie dokumentu: http://www.michaelhamrah.com/blog/index.php/2008/12/event-pooling-with -jquery-using-bind-and-trigger-management-complex-javascript/ –

+0

każdy pomysł jak .live() robi to, co robi? – Kip

Powiązane problemy