Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ukrywanie div, ukrycie mam a chce zapamiętanie wartości
mateuszpi
post
Post #1





Grupa: Zarejestrowani
Postów: 140
Pomógł: 0
Dołączył: 11.09.2006
Skąd: Jaworzno

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


Witam
mam kod do ukrycia pewnego div-a (swoją drogą znaleziony u Was)
wszystko działa pięknie ale niestety po przejściu na inną stronę i powrocie to wszystko wraca do stanu początkowego a ja potrzebuje aby to co zostało ustawione było zapamiętane. zapewne trzeba użyć ciasteczek. prosze o pomoc i modyfikacje kodu:
  1. <script type="text/javascript">
  2. <!--
  3. function pokazUkryj(id)
  4. {
  5. document.getElementById(id).style.display = (document.getElementById(id).style.display == "none") ? "block" : "none";
  6. }
  7. -->
  8.  
  9. <a href="javascript:pokazUkryj('menu_1')">Zwiń/Rozwiń</a>
  10. <div id="menu_1" style="display:none"><!--Powinno być ukryte...-->
  11. </div>


z góry dzieki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kubarek
post
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 19.02.2007

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


Jeszcze teraz nad tym myślałem trochę, więc wygląda nieco inaczej, niż przedstawiłem w pierwszym poście. A więc tak ( zdania nie rozpoczyna się od 'a więc' (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ):
Tworzysz funkcję pokazUkryj, z parametrem id, itd:
Kod
function pokazUkryj(id)
{
    var stan = (document.getElementById(id).style.display == "none");
    document.getElementById(id).style.display = stan ? "block" : "none";
    zapiszCiastko(id, !stan);
}

Pobiera stan elementu, czyli sprawdza czy element jest niewidoczny. Następnie zmienia ten stan i zapisuje już zmieniony do cookies ( stąd ten wykrzyknik w funkcji zapiszCiastko). Czyli zapisuje true, jeśli element nie jest widoczny albo false, jeśli jest widoczny. Odczytywanie wygląda zaś tak. Tworzysz funkcję, która wczytuje zapisany stan i na jego podstawie decyduje, czy element ma być widoczny, czy ukryty.
Kod
function odczytajStan(id){
    var stan = odczytajCiastko(id);
    document.getElementById(id).style.display = stan ? "block" : "none";
}


No i funkcja ładująca się na starcie:
Kod
window.onload = function(){
   var id = "id_elementu_ktory_ma_miec_wczytany_stan_na_starcie";
   odczytajStan(id);
}

Jeśli jest wiele takich elementów, to no problem, użyj tablicy:
Kod
window.onload = function(){
   var elementy = ["elem1", "elem2", "elem3"];
   for (var i = 0; i < elementy.length; i++) odczytajStan(elementy[i]);
}

Pisane z palca, więc mogą być pewne błędy, ale ogólnie idea jest właśnie taka (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował kubarek 6.04.2008, 20:28:04
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: 15.10.2025 - 07:12