Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] W jaki sposób "ukryć" aktywny button?
Forum PHP.pl > Forum > Po stronie przeglądarki
swiezak
Mam problem z napisaniem skryptu, który byłby odpowiedzialny za "ukrywanie" aktywnego buttona po najechaniu kursorem myszki na inny button.
Na stronie http://webgroup.pl/polyvision/web/ można zaobserwować w górnym menu efekt, który pozwala poszczególnym buttonom przypisać atrybut :hover po najechaniu na nie kursorem myszki oraz atrybut active po kliknięciu. Chciałbym, aby np. po wybraniu działu 'O nas' najechanie kursorem myszki na sąsiedni button (przykładowo 'Kontakt') spowodował, że 'O nas' nie będzie podświetlony. W jaki sposób za pomocą skryptu to wykonać?

Fragmenty kodu:

HTML:
  1. <div id="TopMenuJS">
  2.  
  3. <dl id="menu1" class="link4">
  4.  
  5. <dt><a href="index.html" title="Strona główna"><span class="menu_space">Strona główna</span></a></dt>
  6.  
  7. <dt><a href="o-nas.html" title="O nas"><span class="menu_space">O nas</span></a></dt>
  8.  
  9. <dt><a href="aktualnosci.html" title="Aktualności"><span class="menu_space">Aktualności</span></a></dt>
  10.  
  11. <dt><a href="pobierz-pdf.html" title="Pobierz PDF"><span class="menu_space">Pobierz PDF</span></a></dt>
  12.  
  13. <dt><a href="standardy.html" title="Standardy"><span class="menu_space">Standardy</span></a></dt>
  14.  
  15. <dt><a href="kontakt.html" title="Kontakt"><span class="menu_space">Kontakt</span></a></dt>
  16.  
  17. </dl>
  18.  
  19. </div>
  20.  
  21. <script type="text/javascript">
  22. // <![CDATA[
  23. new Menu('menu1', '', false, false, 100, 0);
  24. // ]]>
  25. </script>


CSS:
  1. .menu_space {
  2. display: block;
  3. padding: 2px 0 0 0;
  4. }
  5.  
  6. #TopMenuJS {
  7. float: left;
  8. margin-top: -43px;
  9. padding-left: 50px;
  10. width: 941px;
  11. height: 43px;
  12. overflow: hidden;
  13. position: relative;
  14. /*border: 1px solid red;*/
  15. }
  16.  
  17. #menu1 dt {
  18. float: left;
  19. width: 141px;
  20. height: 43px;
  21. line-height: 43px;
  22. display: block;
  23. cursor: pointer;
  24. }
  25.  
  26. #menu1 dt.active, #menu1 dt.active a {
  27. color: #45ddf5;
  28. background: #000 url('../images/top/menu_top_btn_on.jpg') no-repeat center top;
  29. }
  30.  
  31. #menu1 dt a:hover {
  32. background: #000 url('../images/top/menu_top_btn_on.jpg') no-repeat center top;
  33. }
  34.  
  35. .link4, .link4 a:link, .link4 a:visited {
  36. display: block;
  37. font-size: 15px;
  38. color: #9d9d9d;
  39. font-weight: normal;
  40. text-decoration: none;
  41. }
  42.  
  43. .link4 a {
  44. text-decoration: none;
  45. }
  46.  
  47. .link4 a:hover {
  48. color: #45ddf5;
  49. text-decoration: none;
  50. }


Próbuję za pomocą poniższego skryptu usunąć atrybut 'active', ale nie działa:
  1. <script type=\"text/javascript\">
  2. // <![CDATA[
  3. $(document).ready(function(){
  4. $(\"#menu1 dt. a\").removeClass(\"active\");
  5. });
  6. // ]]>
  7. </script>


Prosiłbym o jakąś wskazówkę, w jaki sposób rozwiązać wyżej wymieniony problem.
kamil4u
To nie <a>, a <dt> ma ustawioną klasę 'active';
Kod
$('#menu1 dt.active').removeClass("active");
swiezak
'Fucktycznie', pomyliłem selektory.
Tylko teraz pytanie, jak zrobić aby atrybut active dla dt był usuwany po nakierowaniu kursorem myszki na pozostałe buttony? Nie jestem dobry w jQuery, więc proszę o wyrozumiałość.
kamil4u
http://api.jquery.com/hover/
W pierwszej funkcji usuwasz i zapamiętujesz co usunąłeś, w drugiej z powrotem ustawiasz klasę 'active' odpowiedniemu(zapisanemu) elementowi.
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.