Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zmiana klasy elementu
Włodzimierz
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 30.11.2013

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


Witam.
Tworzę stronę wizytówkę swojej małej firmy, i potrzebuję wykonać rozwijane menu po kliknięciu na element.
Moim celem jest wykorzystanie jak najkrótszego kodu, czyli importowanie biblioteki nie wchodzi w grę.

Mniej więcej chce uzyskać taki efekt:
  1. <button>Menu</button>
  2. <div id="zm" class="klasa1">Linki<div>

a po kliknięciu na button:
  1. <button>Menu</button>
  2. <div id="zm" class="klasa2">Linki</div>


Szukając po internecie natrafiłem na coś takiego:
  1. <!DOCTYPE html>
  2. function changeColor(newColor) {
  3. var elem = document.getElementById("para1");
  4. elem.style.color = newColor;
  5. }
  6. </script>
  7. </head>
  8. <p id="para1" style="color: red;">Some text here</p>
  9. <button onclick="changeColor('blue');">blue</button>
  10. <button onclick="changeColor('red');">red</button>
  11. </body>
  12. </html>


Powyższy kod działa, lecz jedynie zmienia kolor, i potrzebuje dwóch buttonów. Próbowałem go zmodyfikować, lecz nic z tego nie wychodziło.

Proszę o pomoc (IMG:style_emoticons/default/smile.gif) Jeżeli będzie trzeba chętnie za jako taką pomoc zapłacę.
Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Włodzimierz
post
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 30.11.2013

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


@com eureka

@Crozin o tym, że jQuery jest cachowane automatycznie nie wiedziałem. W takim razie zmienia to moje podejście do sprawy- biblioteka jQ+ kilka linijek kodu będzie się szybciej wczytywać niż kilkanaście linijek w czystym JS (IMG:style_emoticons/default/smile.gif)

------

Jednak chyba użyję czystego JS. Wyczytałem, że jQ trzeba umieć cachować.

Więc mam coś takiego:
  1. <!DOCTYPE html>
  2.  
  3. function myFunction()
  4. {
  5. var h=document.getElementsByTagName("H1")[0];
  6. var typ=document.createAttribute("class");
  7. typ.nodeValue="democlass";
  8. h.attributes.setNamedItem(typ);
  9. }
  10.  
  11. var t = 0;
  12. function myFunction()
  13. {
  14. if(t == 0){
  15. var h=document.getElementsByTagName("H1")[0];
  16. var typ=document.createAttribute("class");
  17. typ.nodeValue="democlass1";
  18. h.attributes.setNamedItem(typ);
  19. t = 1;
  20. }
  21. else
  22. {
  23. var h=document.getElementsByTagName("H1")[0];
  24. var typ=document.createAttribute("class");
  25. typ.nodeValue="democlass";
  26. h.attributes.setNamedItem(typ);
  27. t = 0;
  28. }
  29. }
  30.  
  31. <style>.democlass{display:none;} .democlass1{display:block;}</style>
  32. </head>
  33.  
  34. <h1 id="h1" class="democlass">Hello World</h1>
  35. <button onclick="myFunction()">Menu</button>
  36.  
  37. </body>
  38. </html>


Problem w tym, że skrypt szuka znaczników H1, a nie np. div'a z określonym ID. Próbowałem zamienić
  1. getElementsByTagName
na
  1. getElementById
, ale niestety nie działa.
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: 27.12.2025 - 05:23