Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Problem ze zmięnną i pętlą swich
Forum PHP.pl > Forum > Przedszkole
karolusgt
Cześć wszystkim.
Piszę ponieważ mam jak podejrzewam błahy problem, ale wpaść na jego rozwiązanie nie potrafię. Mam bowiem na stronie skrypt który sprawia że w zależności od najechania na odpowiedni link w menu, pod menu wyświetla różną treść (przypisaną do konkretnego linku). Sam skrypt nie jest skomplikowany i wygląda tak:

<script>

function zamiana(x){
switch(x){
case 1:
document.getElementById('tresc1').style.display="block";
document.getElementById('tresc2').style.display="none";
document.getElementById('tresc3').style.display="none";
document.getElementById('tresc4').style.display="none";
break;
case 2:
document.getElementById('tresc1').style.display="none";
document.getElementById('tresc2').style.display="block";
document.getElementById('tresc3').style.display="none";
document.getElementById('tresc4').style.display="none";
break;
case 3:
document.getElementById('tresc1').style.display="none";
document.getElementById('tresc2').style.display="none";
document.getElementById('tresc3').style.display="block";
document.getElementById('tresc4').style.display="none";
break;
case 4:
document.getElementById('tresc1').style.display="none";
document.getElementById('tresc2').style.display="none";
document.getElementById('tresc3').style.display="none";
document.getElementById('tresc4').style.display="block";
break;
}
}
</script>

W menu są linki podobne do tego: <a href="" onmouseover="zamiana(1);">STRONA GŁÓWNA</a> (pozostałe są podobne więc sobie daruję).
Dalej w kodzie strony są takie oto divy (to co ma być wyświetlane w zależności od wartości zmiennej x) :

<div id="tresc1"> tekst 1</div>
<div id="tresc2"> tekst2 </div>... itd.

Sam skrypt działa OK, za wyjątkiem pierwszego uruchomienia strony, ponieważ wyświetla na stronie startowej zawartość wszystkich divów łącznie a nie tylko jednego wybranego. Potem już jest jak trzeba. Próbowałem opcji default ale zabieg ten nie pomógł. Chciałem też przypisać początkową wartość zmiennej która potem będzie się zmieniała, ale to również nie pomogło. Nie znam zbyt dobrze składni JS i może to jest pies pogrzebany. Jeśli ktoś zna i umie rozwiązać ten problem będę dozgonnie wdzięczny i z góry dziękuję za pomoc smile.gif

Wicepsik
Dopisz funkcje

[JAVASCRIPT] pobierz, plaintext
  1. function on_load(){
  2. document.getElementById('tresc1').style.display="none";
  3. document.getElementById('tresc2').style.display="none";
  4. document.getElementById('tresc3').style.display="none";
  5. document.getElementById('tresc4').style.display="none";
  6. }
[JAVASCRIPT] pobierz, plaintext


W dokumencie html

  1. <body onload="on_load();">


Używaj BBCode
karolusgt
Dzięki śliczne. Mówiłem że to błahy problem smile.gif
kamil4u
Poczytaj o zasadzie DRY. Proponuję więc przerobić Twoją funkcję:
Kod
<script>
function on_load(){
document.getElementById('tresc1').style.display="none";
document.getElementById('tresc2').style.display="none";
document.getElementById('tresc3').style.display="none";
document.getElementById('tresc4').style.display="none";
}

function zamiana(x){
on_load(); //<-- tylko nazwij tę funkcję bardziej sensownie :)
document.getElementById('tresc'+x).style.display="block";
}
</script>
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.