Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Rozwijane Menu
Forum PHP.pl > Forum > Przedszkole
ewelinac18
Witam, mam problem i nie mogę sobie z nim poradzić.
Problem tkwi w tym, że po kliknięciu w SubMenu zamiast mnie przekierować to chowa całą klase.
W jaki sposób zrobić tak aby po kliknięciu w SubMenu mnie przekierowało, a po kliknięciu w Menu rozwijało się SubMenu tak jak jest obecnie .


Skrypt można zobaczyć tu: http://s-port.nazwa.pl/jq_menu.html

  1. <head>
  2. <title>jQuery Menu</title>
  3. <meta charset="ISO-8859-2" />
  4. <meta name="keywords" content="#" />
  5. <meta name="description" content="#" />
  6. <meta name="language" content="pl" />
  7. <meta name="robots" content="index, follow" />
  8.  
  9. <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
  10. $(document).ready(function() {
  11. $("#vert li").each(function() {
  12. if ($(this).find('ul:first').length > 0) {
  13. $(this).addClass('arDown');
  14. }
  15. if ($(this).hasClass("on")) {
  16. $(this).find('ul:first').slideToggle('fast');
  17. }
  18. });
  19. $("#vert ul li").click(function() {
  20. if ($(this).find('ul:first').length > 0) {
  21. $(this).find('ul:first').slideToggle('fast');
  22. $(this).toggleClass('on');
  23. return false;
  24. }
  25. });
  26. });
  27. </script>
  28.  
  29. <style type="text/css">
  30. <!--
  31.  
  32. #vert ul {
  33. float: left;
  34. width: 168px;
  35. margin: 0;
  36. list-style: none;
  37. background: white; }
  38.  
  39. #vert > ul > li {
  40. float: left;
  41. width: 168px;
  42. margin: 2px 0;
  43. padding: 2px 0;
  44. border-bottom: 1px solid #ebebeb; }
  45.  
  46. #vert > ul > li:last-child { border: 0 none; }
  47.  
  48. #vert > ul > li > a {
  49. float: left;
  50. width: 168px;
  51. font-family: "MyriadPro-Semibold", "Arial";
  52. font-size: 14px;
  53. text-shadow: 1px 1px 1px #fff;
  54. color: #444; }
  55.  
  56. #vert a:hover {
  57. text-decoration: none;
  58. color: #039ec3; }
  59.  
  60. .arDown { background: url(el.png) right -67px; }
  61.  
  62. #vert .on { background: url(el.png) right -94px; }
  63.  
  64. #vert .on > a { color: #2cb91e !important; }
  65.  
  66. #vert ul ul {
  67. display: none;
  68. margin: 5px 0; }
  69.  
  70. #vert ul ul li {
  71. width: 158px;
  72. background: url(el.png) left -42px;
  73. padding-left: 10px;
  74. margin: 1px 0; }
  75.  
  76. -->
  77.  
  78.  
  79.  
  80. </head>
  81.  
  82.  
  83.  
  84. <nav id="vert">
  85. <ul>
  86. <li><a href="#menu">Menu 1</a></li>
  87. <li><a href="#menu">Menu 2</a>
  88. <ul>
  89. <li><a href="#submenu">SubMenu 1</a></li>
  90. <li><a href="#submenu">SubMenu 2</a></li>
  91. <li><a href="#submenu">SubMenu 3</a></li>
  92. <li><a href="#submenu">SubMenu 4</a></li>
  93. <li><a href="#submenu">SubMenu 5</a></li>
  94. </ul>
  95. </li>
  96. <li><a href="#menu">Menu 3</a></li>
  97. <li><a href="#menu">Menu 4</a></li>
  98. <li><a href="#menu">Menu 5</a></li>
  99. </ul>
  100.  
  101. </nav>
  102.  
ActivePlayer
zauwaz ze click dodałeś do całego li, a więc wszsystko pomiędzy 91 a 99 linią objęte będzie zdarzeniem. jak bys zbindował tag "a" zamisast "li" wtedy osiagnąłbys efekt. jedynie co dodatkowo musiałbys zrobic to przerobic a zeby bylo wyswietlane blokowo (zeby zajmowało cały obszar na szerokość a nie tylko miejsce gdzie jest tekst).

Kod
$("#vert ul li").click(function() {

na
Kod
$("#vert ul li a").click(function() {

+ w kodzie $(this) na $(this).parent()

no i css
ewelinac18
Udało sie, bardzo dziękuje za pomoc smile.gif
solo112
Witam,
ćwiczę tworzenie menu na skrypcie pokazanym przez ewelinac18. Próbuję się zastosować do wskazówek ActivPlayera ale nie działają. Co robię źle?
Jak jest taka możliwość to proszę o wyświetlenie poprawionego kodu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.