Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JQuery] Akcja dla dynamicznie tworzonego potomka
gregiolo
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 1.02.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam serdecznie,
Posiadam następujący, przykładowy kod:

  1. <div id="container">
  2. <div id="rodzic"></div>
  3. </div>


oraz zdarzenie (wstępnie):

  1. $("#rodzic").click(function() {
  2. $(this).append('<div id="losoweid"></div>');
  3. });


Chciałbym aby po kliknięciu na blok #rodzic lub każdy #losoweid i wszystkich zagnieżdżonych w nich lub równoległych poziomem do nich, wykonywała się taka sama akcja jak wyżej czyli tworzenie potomnego bloku. Poziom, w którym byłby dopisany zależałby od klikniętego bloku.

Problem w tym, że gdy nawet zmienię selektor na $("#container > div") gdy klikam na "rodzic" lub "losoweid" wykonuje się automatycznie ta sama akcja dla rodzica. Jednocześnie nie mogę pozbawić rodzica eventu gdyż może się przydać po kliknięciu na niego.

Próbowałem metod:
1) umieszczenia nazwanego eventu click po append() ale nie odczytuje akcji
2) korzystania z funkcji delegate
3) korzystania z funkcji live()
4) korzystania z regexp w selektorze dla wszystkich div, ale wtedy akcja wywołuje się rekurencyjnie do bólu.
5) unbind

Naturalnie nie wchodzi w grę dopisywanie ręczne definicji akcji dla każdego ID.
Fakt, że mogłem rozwiązań j/w użyć nieumiejętnie, więc proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gregiolo
post
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 1.02.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Hmm pomysł ciekawy, ale niestety nie działa.

Jako selektora użyłem zarówno rodzic jak i wszystkie div'y dzieci.
  1. obj = $(e.currentTarget);
  2. objId = "#"+$(obj).attr('id');


W każdej sytuacji objId zawsze ma wartość "#rodzic". obj jest typu object. [Object] object :/
Go to the top of the page
+Quote Post
zegarek84
post
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


Cytat(gregiolo @ 4.06.2011, 16:27:39 ) *
Hmm pomysł ciekawy, ale niestety nie działa.

prawie to rozwiązanie które podał @everth tylko przede wszystkim nie currentTarget a .target
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 18:48