Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Aktywne menu i ładowanie funkcją .load
Forum PHP.pl > Forum > XML, AJAX > AJAX
damianpsp2000
Witam.
Jestem nowym użytkownikiem, mam na imię Damian, 15 lat i programuję od dwóch lat znam php, mysql, html, css i js.
Otóż tak:

Mam problem a właściwie dwa problemy jeden z aktywnym menu a drugi z napisem ładowanie.
Mam w stylach .css klase .active i .menu są one takie same tylko różnią się background'em,
W js a dokładniej w jquery za pomocą funkcji .load wczytuję dany plik wygląda to tak:

  1. ////////tutaj jest plik z jquery.js//////////
  2.  
  3.  
  4. <script language="javascript">
  5.  
  6. function ajaxLoad(plik, divladowany, divobecny){
  7.  
  8. $('#'+divladowany).html('Ładowanie Treści...');
  9. setTimeout(function(){
  10. $('#'+divladowany).load(plik);
  11. }, 3000);
  12.  
  13. $('#'+divobecny).attr('class', 'active');
  14.  
  15. }
  16.  
  17.  
  18. </head>
  19. <div class="menu" id="home" onClick="ajaxLoad('kontakt.html', 'tresc', 'home')">
  20. <span>Home</span>
  21. </div>
  22. <div class="menu" id="rejestracja" onClick="ajaxLoad('kontakt.html', 'tresc', 'rejestracja')">
  23. <span>Rejestracja</span>
  24. </div>
  25. <div class="menu" id="regulamin" onClick="ajaxLoad('kontakt.html', 'tresc', 'regulamin')">
  26. <span>Regulamin</span>
  27. </div>
  28. <div class="menu" id="kontakt" onClick="ajaxLoad('kontakt.html', 'tresc', 'kontakt')">
  29. <span>Kontakt</span>
  30. </div>
  31. <div id="tresc"></div>
  32. </body>
  33. </html>



i wszystko ok działa...
link się uaktualnia
ale chciałbym tak, że jak kliknę
na inny link czyli na inny div o class="menu" ten poprzedni co jest równy class="active" zmieniał się spowrotem na class="menu";/
Nie wiem jak to wykonać. Proszę o pomoc.

Drugi problem opiszę po rozwiązaniu tego problemu.

Pozdrawiam.
rocktech.pl
Witam.

Zacznij od uproszczenia skryptu. Tu demo.

To menu zgodnie z ideą Progressive enhancement powinnom wyglądać tak.
  1. <ul>
  2. <!-- NIe mam JS ale kliknąć mogę -->
  3. <li><a href="kontakt.html" class="menu"><span>Home</span></a></li>
  4. </ul>
  5. ...
  6. <div id="tresc"></div>


[JAVASCRIPT] pobierz, plaintext
  1. $('a.menu').each(function(el) {
  2. $(this).on('click', function(event){
  3. event.preventDefault();
  4. $(this).addClass('active');
  5. $('#tresc').load($(this).href);
  6. });
  7. });
[JAVASCRIPT] pobierz, plaintext


Co do twoich pytań

1 ) Po kliknięciu na dany element usuwasz klasę .active z pozostałych patrz each() i removeClass() albo toggleClass()
2) Co do ładowania load() za to nie lubię jQuery.
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.