Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jquery] Dynamiczne dzieci
Fifi209
post
Post #1





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Mam pojemnik (div content), do którego mam przyczepione zdarzenie click, które z kolei wykonuje kod:
[JAVASCRIPT] pobierz, plaintext
  1. $("#content").append('<div class="text"><div class="menu"><div class="edit" alt="Edit"></div><div class="move" alt="Move"></div><div class="del" alt="Delete"></div></div></div>');
[JAVASCRIPT] pobierz, plaintext


Podpinam zdarzenie:
[JAVASCRIPT] pobierz, plaintext
  1. $(".text").live('click',
  2. function() {
  3. alert(1);
  4. }
  5. );
[JAVASCRIPT] pobierz, plaintext


Zamiast alerta próbowałem np:
[JAVASCRIPT] pobierz, plaintext
  1. $(this).children("div").show();
  2. $(this).children().show();
[JAVASCRIPT] pobierz, plaintext


Bez skutku... Jak więc dobrać się do "menu" ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zegarek84
post
Post #2





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

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


wypróbuj ten kod - zdarzenie jest podpięte pod istniejący element a sprawdzane sa dzieci które mogą istnieć w DOM dopiero później - dzieci tego elementu pod który jest podpięte zdarzenie
[edit]
jak tak ciężko wkleić kod i sprawdzić w przykładowym html'u to masz ;p
  1. <html>
  2. <head>
  3. <title>Formularz kontaktowy</title>
  4. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  5. <script type="text/javascript">
  6. $(function() {
  7. var nContent = document.getElementById('content');
  8. var oClassCallback = {};
  9. oClassCallback['text'] = function(e){alert(1);};
  10. oClassCallback['menu'] = function(e){alert(this.innerHTML);};
  11. oClassCallback['edit'] = oClassCallback['move'] = oClassCallback['del'] = function(e){alert(this.getAttribute('class'));};
  12.  
  13. var fContent = function(e){
  14. var nTarget = e.target, sClass;
  15. if(nTarget.nodeType!==1) nTarget = nTarget.parentNode;
  16. // wywołanie callbacków tylko dla dzieci
  17. while(nTarget!==nContent){
  18. sClass = nTarget.getAttribute('class');
  19. sClass && (oClassCallback[sClass] instanceof Function) && oClassCallback[sClass].call(nTarget, e); // a jeszcze eventa z jQuery przerzuciłem dalej jakbyś potrzebował ;D
  20. nTarget = nTarget.parentNode;
  21. }
  22. nTarget = e = sClass = null;
  23. };
  24. $(nContent).click(fContent);
  25. });
  26. <script type="text/javascript">
  27. $(function(){
  28. $("#content").append('<div class="text"><div class="menu"><div class="edit" alt="Edit">edit</div><div class="move" alt="Move">move</div><div class="del" alt="Delete">delete</div></div></div>');
  29. });
  30. </head>
  31. <div id="content"></div>
  32. </body>
  33. </html>


Ten post edytował zegarek84 1.06.2011, 09:13:39
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: 10.06.2026 - 14:33