Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z menu
Forum PHP.pl > Forum > PHP
molek55
Witam
Posiadam skrypt strony z filmami. Jest tam możliwość dodania podkategorii. Rozwijają się one podczas najechania na kategorię główną i znikają po zjechaniu myszką na inny element. Jest to strasznie denerwujące. Proszę o pomoc. Nie jestem pewny ale możliwe że w tym fragmencie php jest wiersz za to odpowiedzialny. Chciałbym żeby podkategorie były ciągle rozwinięte lub żeby rozwijały się po kliknięciu.

  1. // subcategories
  2. $subcats_count = 0;
  3. $subcats = '';
  4. foreach($categories_array as $cat_id2 => $subcat_arr)
  5. {
  6. if($subcat_arr['parent_id'] == $cat_id && ($cat_id2 != $cat_id))
  7. {
  8. $subcats_count++;
  9.  
  10. if(_SEOMOD == 1)
  11. {
  12. $caturl = _URL."/browse-".$subcat_arr['tag']."-videos-1-date.html";
  13. }
  14. else
  15. {
  16. $caturl = _URL."/category.php?cat=".$subcat_arr['tag'];
  17. }
  18. if($subcat_arr['id'] == $selected)
  19. {
  20. $subcats .= "<li class=\"selectedsubcat\"><a href=\"".$caturl."\">".$subcat_arr['name']."</a></li>";
  21. }
  22. else
  23. {
  24. $subcats .= "<li><a href=\"".$caturl."\">".$subcat_arr['name']."</a></li>";
  25. }
  26. }
  27. }
  28.  
  29. // href
  30. if(_SEOMOD == 1)
  31. {
  32. $caturl = _URL."/browse-".$cat_arr['tag']."-videos-1-date.html";
  33. }
  34. else
  35. {
  36. $caturl = _URL."/category.php?cat=".$cat_arr['tag'];
  37. }
  38. // li
  39. $li_item = "";
  40. if($cat_arr['id'] == $selected)
  41. {
  42. $li_item .= '<li class="selectedcat"';
  43. }
  44. else
  45. {
  46. $li_item .= '<li';
  47. }
  48. $li_item .= '><a href="'.$caturl.'">'.$cat_arr['name'].'</a>';
  49.  
  50. if($subcats_count > 0)
  51. {
  52. $li_item .= '<ul class="hidden_li">'.$subcats.'</ul>';
  53. }
  54. $li_item .= '</li>';
  55. // append
  56. $cats .= $li_item;
  57. }
  58. }
  59. // wrapper
  60. $cats = '<ul id="ul_categories">'.$cats.'</ul>';
  61. return $cats;
  62. }
  63.  
  64.  
  65. function list_subcategories($parent = '0', $selected)
  66. {
  67. if ($parent == '')
  68. {
  69. return '';
  70. }
  71.  
  72. $subcategories = '';
  73. $url = '';
  74.  
  75. $sql = "SELECT *
  76. FROM pm_categories
  77. WHERE parent_id = '". $parent ."'
  78. ORDER BY name ASC";
  79. $result = @mysql_query($sql);
  80. if ( ! $result)
  81. {
  82. return '';
  83. }
  84. while ($row = mysql_fetch_assoc($result))
  85. {
  86. if (_SEOMOD == 1)
  87. {
  88. $url = _URL."/browse-".$row['tag']."-videos-1-date.html";
  89. }
  90. else
  91. {
  92. $url = _URL."/category.php?cat=".$row['tag'];
  93. }
  94.  
  95. $subcategories .= ($row['id'] == $selected) ? '<li class="selectedcat">' : '<li>';
  96. $subcategories .= '<a href="'. $url .'">'. $row['name'] .' ('. $row['total_videos'] .')</a>';
  97. $subcategories .= '</li>';
  98.  
  99. }
  100. return $subcategories;
  101. }
  102.  
tehaha
Taki efekt zwijania/rozwijania to javascript, sugerując się nazewnictwem zgaduję, że efekt jest przypisany do klasy hidden_li -> <ul class="hidden_li">, zapewne w pliku css też masz ustawione dlatego elementu dispaly:none

najlepiej usuń ten efekt w javascript
molek55
Usunąłem z css display:none oraz w js miałem //theform.style.display='none'; również usunąłem i nic. Jest tak jak było.
krzysztof_kf
Możesz podać url do strony z problemem ?
molek55
Ta strona nie jest umieszczona jeszcze do wglądu publicznego, ewentualnie na pw wyślę.
krzysztof_kf
Plik jquery.hover.js szukaj linijki na samym końcu

  1. .mouseout(handleHover);};})(jQuery);



zmień na

  1. .mouseout(handlerInOut);};})(jQuery);


efekt ci daje trwałe rozwinięcie menu ale więcej już ci ja osobiście nie pomogę ;/
molek55
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:0,timeout:100};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math
.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function()
{compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIn
tent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if
(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}
else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){dela
y(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);


Mam coś takiego. Wie ktoś tak zmienić tą funkcję aby podkategorie były rozwinięte od razu.

Zmiana handleHover na handlerInOut nic nie zmieniła.
krzysztof_kf
zmień jeszcze raz na samym końcu z HandleHover NA

  1. .mouseout(handlerInOut);};})(jQuery);


i odśwież stronę . i powiedz kiedy to zapisałeś luknę
molek55
już zmieniłem
krzysztof_kf
eee? tylko ostatnie nie obydwa tylko .mouseout exclamation.gif!! co ja ci pokazałem patrzymy

tzw tak to ma wyglądać

  1. mouseover(handleHover).mouseout(handlerInOut);};})(jQuery);
molek55
no teraz tak mam

w sumie już jest ok, jeżeli nie może być od razu rozwinięte

Dzięki za pomoc

Z menu jest już ok lecz teraz zauważyłem, że tabela "Filmy ogladane teraz" nie działa jak powinna.
krzysztof_kf
Cytat(molek55 @ 4.05.2010, 17:36:19 ) *
no teraz tak mam

w sumie już jest ok, jeżeli nie może być od razu rozwinięte

Dzięki za pomoc

Z menu jest już ok lecz teraz zauważyłem, że tabela "Filmy ogladane teraz" nie działa jak powinna.



To znaczy co konkretnie ? co jest nie tak .
molek55
Filmy które są aktualnie oglądane pokazuję się poniżej tabelki w której do tej pory były.
krzysztof_kf
A co mieszałeś w css ? to nie jest na pewno wina javascript tylko coś zmąciłeś w css .
molek55
dispaly:none jedynie usunąłem
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.