[ johnnyc @ 04.03.2010. 13:21 ] @
| Pozdrav!
Pomocu jQueryja, klikom na jedan link, dinamicki dodajem elemente na web formu. Svaki dodati element ima jedinstven ID i NAME.
Zamina me, kako da kada kliknem misem na dodati element forme, da dobijem informaciju koji je ID (ili NAME) elementa na koji sam kliknuo.
Pokusavao sam sa varijantama tipa:
Code:
$("input").click(function(event) {
alert(event.target.id);
});
... ali one mi ne vracaju nikakav rezultat... Kako da skript ne shvata da su dodati novi elementi na formu.
Da li mozete da mi pomognete kako da resim ovaj problem?
Hvala unapred!!! |
[ Goran Rakić @ 04.03.2010. 13:36 ] @
jQuery.click() je prečica za
jQuery.bind() i odnosi se samo na elemente prisutne u trenutku poziva funkcije. Ili postavi obradu događaja eksplicitno za nove elemente ili koristi
jQuery.live().
Koristi neko okruženje za testiranje poput Firebug/WebInspector/... da uživo vidiš koji elementi imaju onclick. I još jedan savet, u obradi elementu možeš da pristupiš sa jQuery(this), nema potrebe da skačeš na event.target.
[ Nikola Poša @ 04.03.2010. 13:39 ] @
Pa zar ti nije logično da ako ti bind-uješ taj event pre nego što dodaš neki element da to neće imati nikakvog efekta... Ako ti recimo na document.ready izvršiš taj kod koji si poslao, to će da važi samo za one elemente koji se trenutno nalaze na stranici, a za sve što posle dodaš mora ponovo da ide bind-ovanje tog događaja. Rešenje bi bilo da napraviš malu funkciju koja bi radila taj deo sa bind-ovanjem click event-a, a onda bi nju pozivao i na document.ready, ali i na svako ubacivanje dodatnih elemenata u tvoju formu.
edit: preteče me Goran. :) I naravno, kao što on i reče, live() metod je pravo rešenje.
[Ovu poruku je menjao Nikola Poša dana 04.03.2010. u 15:03 GMT+1]
[ johnnyc @ 04.03.2010. 14:34 ] @
hvala gospodo
:-)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.