Napisałem sobie mały skrypcik, który pokazuje DIVa (ostylowanego przez CSS) o ID takim, który jest przekazany do funkcji JS. Wszystko ładnie działa, po najechaniu kursorem wszystkie divy się pokazują, ale problem leży w znikaniu.

Jeśli najedzie się na któryś z LI, pokazuje się dany DIV, jeśli się najedzie na tego DIVa i "zjedzie" spowrotem to sie ładnie chowa, ale jeśli sie najedzie na LI i nie najedzie na DIVa to ten się nie chowa dopóki się na niego nie najedzie i nie "zjedzie". Po prostu nie umiem tego zrobić i tyle.

Oczywiście wykoncypowałem coś takiego, żeby sprawdzać warunek: jeśli kursor najedzie na LI ale nie najedzie na DIVa, to odliczać 3 sekundy i po tych trzech sekundach zchować DIVa, a gdy w ciągu tych trzech sekund kursor najedzie na diva to już go nie ukrywać.

Zrobiłem tylko to odliczanie (docoment.setTimeout()), ale po moim kombinowaniu z efektem miałem problemy, np po rozwinięciu się dwóch DIVów (pokazywanie i chowanie z opóźnieniem), gdy zjadę z jednego na drugiego, to ten drugi się jakby zmniejsza i w ogóle wychodza mi jakieś dziwne rezultaty.

Mógłby mi ktoś podać jakiś pomysł, jak to wykonać? Niezbt się znam na JS i jQuery (szczerze mówiąc to na FW lepiej niż na czystym języku ;/). Tak, kożystam z jQuery. Oto dotychczasowy kod JS:
  1. var _boxCartContentShow = false;
  2. function BHShowCartContent() {
  3. //Jeśli box jest tamknięty to go pokazujemy
  4. if(_boxCartContentShow == false) {
  5. $('#box_cart_content').css({'display': 'block'});
  6. _boxCartContentShow = true;
  7. }
  8. //Jeśli otwarty, zamykamy
  9. else {
  10. $('#box_cart_content').css({'display': 'none'});
  11. _boxCartContentShow = false;
  12. }
  13. return false;
  14. }
  15.  
  16. /*
  17. * Pokazuje lub ukrywa elementy menu. Ostylowanie CSS.
  18. */
  19. var _menuCurrentId = false;
  20. function BHShowMenu(id) {
  21. //Ukrywamy wszystkie inne menu, jeśli parametr ID jest inne niż te ze zmiennej globalnej
  22. if(id != _menuCurrentId) {
  23. $('.menu_slide').each( function(index) {
  24. $(this).slideUp(500);
  25. });
  26. }
  27.  
  28. //Pokazujemy menu z ID z parametru, jeśli jest inne niż te ze zmiennej globalnej
  29. if(id != _menuCurrentId) {
  30. //Pokazujemy menu
  31. $('#' + id).slideDown(500);
  32. }
  33.  
  34. //Przypisujemy ID do zmiennej, żeby wiedzieć jaka aktualnie zakładka jest pokazana.
  35. _menuCurrentId = id;
  36.  
  37. }
  38.  
  39. $(document).ready(function() {
  40. //Jeśli myszka opuści pokazaną przed chwila zakłądkę to ja ukrywamy
  41. $('.menu_slide').bind('mouseleave', function() {
  42. $(this).each( function() {
  43. $(this).slideUp(500);
  44. });
  45.  
  46. //Zerujemy aktualną zakładke menu
  47. _menuCurrentId = false;
  48. });
  49.  
  50. /* Tutaj właśnie próbowałem wykombinowac jak chować divy, ale właśnie tutaj wychodziły mi te dziwne rzeczy o których napisałem wyżej.
  51. $('ul#menu').bind('mouseleave', function() {
  52. $('#' + _menuCurrentId).slideUp(500);
  53.  
  54. //Mogę się założyć, że przez te linijki 3, ale nie wiedziałem co innego zrobić dlaego kombinowałem jak mogłem
  55. $('#' + _menuCurrentId).bind('mouseenter', function() {
  56. $(this).stop().show();
  57. });
  58. //Zerujemy aktualną zakładke menu
  59. _menuCurrentId = false;
  60. });*/
  61.  
  62. });



EDIT: Nie ma tagów [js][/js]?