Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jquery - zamiana stylów.
Forum PHP.pl > Forum > Po stronie przeglądarki
ats2008
Witajcie.

W kontenerze div#left mam kilka menu (joomla, każde ładowane dynamicznie).

Chcę zmienić tło div#left w zależności od tego jakie menu się wyświetli.

Stworzyłem taki skrypt w jquery (plugin zgodności z jquery jest):

  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3.  
  4. if ($('ul.menu1')) //jeśli jest ul 0 clasie menu1
  5. {
  6. $('div#left').css('background', '#165b94'); // zmień tło contenera.
  7. }
  8.  
  9. else if ($('ul.menu2'))
  10. {
  11. $('div#left').css('background', '#dc8500');
  12. }
  13. else if ($('ul.menu3'))
  14. {
  15.  
  16. $('div#left').css('background', '#172e5d');
  17. }
  18. else if ($('ul.menu4'))
  19. {
  20. $('div#left').css('background', '#ec6f00');
  21. }
  22. });
  23. </script>


Nie wiem, gdzie tutaj jest błąd. Normalnie tło #left nie jest ustalone.

Skrypt działa dziwnie, bo zmienia tylko 2 pierwsze menu, a każde następne ma kolor 2-ego menu...

w ie7 działał tylko do czasu, jak miałem tylko 2 menu ustalone, potem w ogóle przestał wyświetlać skrypt...

widzicie jakiś błąd? Składnie jest przecież identyczna.

Próbowałem też z takim zapisem warunku:
if if($('ul').attr('class') == 'menu1') {}; ale też to nic nie dało...

Z góry mówię, że odpada nadawanie tła każdemu menu w cssie...

Dzieki.
lukaskolista
nie powinno byc
  1. $('div#left').css('backgroundColor', '#165b94');
?
Vercio
Cytat(lukaskolista @ 21.12.2010, 09:13:20 ) *
nie powinno byc
  1. $('div#left').css('backgroundColor', '#165b94');
?
Może występować samo background.

Co do błędu przypuszczam że będzie to budowanie na if'ach, jeden warunek został już spełniony i dalej już ci nie pójdzie. Spróbuj na CASE zrobić albo wyrzuć else if i daj same if'y. Powinno pomóc.
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.