Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][CSS] Pokazywanie/ukrywanie dwóch div'ów na raz, za pomocą jednego kliknięcia
Ok-a
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 8.09.2009

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


Szukałam rozwiązania już w wielu miejscach, ale jeżeli jest tu gdzieś na forum i je przegapiłam, to byłabym wdzięczna za linka.


Chodzi o to, aby pokazać/ukryć dwa różne bloki tekstu, klikając na jeden odnośnik. Bloki te znajdują się w różnych częściach strony.

W tej chwili mam jakiś skrypt, który świetnie radzi sobie z rozwijaniem jednego bloku. Niestety o skryptach Javy nie wiem prawie nic, więc nie wiem, czy da się tam coś dopisać, żeby to działało też na ten drugi blok (i czy w ogóle coś takiego jest możliwe).

W HEAD to wygląda tak (mam nadzieję, że nie ma błędów - już nawet nie pamiętam skąd to skopiowałam...):
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. function toggleLayer( blok1 )
  3. {
  4. var elem, vis;
  5. if( document.getElementById )
  6. elem = document.getElementById( blok1 );
  7. vis = elem.style;
  8. if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
  9. vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
  10. vis.display = (vis.display==''||vis.display=='block')?'none':'block';
  11. }
  12. </script>
[JAVASCRIPT] pobierz, plaintext

W BODY:
  1. <a href="java script:toggleLayer('blok1')">więcej</a>
  2.  
  3. <div id="blok1">Ukryty tekst</div>


Naiwnie próbowałam tak samo nazwać te dwa bloki (IMG:style_emoticons/default/rolleyes.gif) ale nadal rozwijało tylko jeden.
Będę wdzięczna za jakąkolwiek pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kosma
post
Post #2





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 11.11.2007

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


Jeśli wystarczy tylko odkryć lub schować kilka bloków jednocześnie to wystarczy onclick
  1. <a href="#" onClick="document.getElementById('blok_1').style.display='block';document.getElementById('blok_2').style.display='block';">Odkryj</a>
  2. <div style="display: none" id="blok_1">Ukryty tekst blok 1</div>
  3. <div style="display: none" id="blok_2">Ukryty tekst blok 2</div>


A z funkcją toggleLayer można odkrywać i zakrywać tak:
  1. <a href="java script:toggleLayer('blok');toggleLayer('blok2');">kliknij</a>
  2. <div style="display: none" id="blok">ukryty 1</div>
  3. <div style="display: none" id="blok2">ukryty 2</div>


Jeden blok rozwijało Ci dlatego ponieważ w dokumencie tylko jeden element może przybrać określony numer id i jeśli kilka bloków określisz id=blok to tylko jeden z nich przyjmie ten identyfikator, a jak pewnie zauważyłaś funkcja operuje document.getElementById czyli identyfikatorem z danego dokumentu.

edit:
uwaga na javascript w kodzie - ma być razem lecz forum rozdziela na dwa słowa (w plaintext i pobierając też wyświetla z błędem!).
W swoim skrypcie js nic nie zmieniaj...

Ten post edytował kosma 9.09.2009, 04:19:14
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: 4.04.2026 - 19:13