Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jQuery, i mały problem
Manwe89
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 3
Dołączył: 28.10.2008
Skąd: Łuków

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


Otóż mam menu:
  1. <div id="menu">
  2. <ul>
  3. <li>
  4. <a id="link1" href='#'>Element 1</a>
  5. <ul class="submenu" id="sub1">
  6. <li><a href="#">Jeden</a></li>
  7. <li><a href="#">Dwa</a></li>
  8. <li><a href="#">Trzy</a></li>
  9. </ul>
  10. </li>
  11. <li>
  12. <a id="link2" href='#'>Element 2</a>
  13. <ul class="submenu" id="sub2">
  14. <li><a href="#">Jeden</a></li>
  15. <li><a href="#">Dwa</a></li>
  16. <li><a href="#">Trzy</a></li>
  17. </ul>
  18. </li>
  19. <li>
  20. <a id="link3" href='#'>Element 3</a>
  21. <ul class="submenu" id="sub3">
  22. <li><a href="#">Jeden</a></li>
  23. <li><a href="#">Dwa</a></li>
  24. <li><a href="#">Trzy</a></li>
  25. </ul>
  26. </li>
  27. <li>
  28. <a id="link4" href='#'>Element 4</a>
  29. <ul class="submenu" id="sub4">
  30. <li><a href="#">Jeden</a></li>
  31. <li><a href="#">Dwa</a></li>
  32. <li><a href="#">Trzy</a></li>
  33. </ul>
  34. </li>
  35. </ul>
  36. </div>


no i teraz mam pytanie. Jak zrobic w jQuery taki myk, zeby po kliknieciu powiedzmy w link1 rozwinelo sie submenu o id sub1, w link2 -> sub2 itd. rekurencyjnie. Budowanie w jQuery oddzielnego kodu dla kazdego przypadku zwieksza wage skryptu. Biorac pod uwage fakt ze jest to tylko szkielet musze brac na poprawke mozliwosc znacznego rozbudowania. Wszyscy mowili ze jQuery jest takie fajne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) w czystym js daloby rade napisac funkcje ktora by to robila ze wzgl na podane parametry. Czy w jQuery da rade zrobic cos podobnego? Czy pozostaje mi tylko budowa funkcji w js, ktora bedzie tworzyla odpowiednie wywolanie funkcji w jQuery?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Manwe89
post
Post #2





Grupa: Zarejestrowani
Postów: 81
Pomógł: 3
Dołączył: 28.10.2008
Skąd: Łuków

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


yhm (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dosyc ciekawe (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jeszcze enigmatyczna kwestia jest tylko dla mnie po co ten parent()? (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Cytat(erix @ 2.04.2009, 12:08:39 ) *
Z palca:
Kod
$(document).ready(function(){
      $('#menu > a').click(function(e){
         e.preventDefault();
         $(this).parent().find('u').slideDown();
      });
   });


zmieniłem na:
Kod
$(document).ready(function(){
      $('#menu > ul > li> a').click(function(e){
         e.preventDefault();
         $(this).parent().find('ul').slideDown();
      });
   });


i juz smiga (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dziekowa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

a na sam koniec zrobilem tak:
Kod
$(document).ready(function(){
    $('#menu > ul > li> a').toggle(
     function(e){
        e.preventDefault();
        $(this).parent().find('ul').slideDown();
     },
     function(e){
       e.patrentDefault();
       $(this).parent().find('ul').slideUp();
     })
});

i działa we dwie strony (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
i jeszcze jedno pytanko. Bo kiedy zrobie tak:
Kod
$(document).ready(function(){
    $('#menu > ul > li> a').toggle(
     function(e){
        e.preventDefault();
       $('#menu > ul > li > ul').slideUp();
        $(this).parent().find('ul').slideDown();
     },
     function(e){
       e.patrentDefault();
       $(this).parent().find('ul').slideUp();
     })
});

to nie zawsze dziala rozwijanie. Tzn. kidy klikam na <li>ponizsze to ladnie, a kiedy na <li> wyzsze od aktualnie kliknietego to dopiro za drugim razem dziala. Jak mam "wyrzucic" z slideUp aktualnie kliknietego <li>?

Ten post edytował Manwe89 2.04.2009, 12:36:55
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: 16.10.2025 - 02:14