Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Problem ze zmięnną i pętlą swich
karolusgt
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 24.08.2008

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


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 (IMG:style_emoticons/default/smile.gif)

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kamil4u
post
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


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>
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: 6.10.2025 - 05:25