![]() |
![]() |
![]()
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: z góry dzieki. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 19.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
No dobrze rozumujesz. Użyj ciasteczek
![]() Kod // odczytywanie:
window.onload = function(){ var stan = odczytajCiastko(id_elementu); pokazUkryj(id_elementu); } // zapisywanie: pokazUkryj = function(id) { ... var stan = (document.getElementById(id).style.display == "none"); zapiszCiastko(id_elementu, stan); } -------------------- // ...
Co nieco o mnie ;) |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 11.09.2006 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
albo ja nie rozumiem albo coś jest nie tak:
i teraz wogóle nie działa nic. nawet odkryć ukrytego tekstu się nie da |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 603 Pomógł: 131 Dołączył: 24.07.2007 Skąd: Górny Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Nie działa bo kubarek nie podał Ci rozwiązania na tacy tylko podpowiedź
![]() -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 11.09.2006 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
poszukałem na google i po twoich poradch skombinowałem funkcję do odczytu i zapisu. wsadziłęm całość i nadal nic się nie da zrobić.
czyba jednak musze poprosić o "tace" bo chyba nie dojde osobiście. |
|
|
![]()
Post
#6
|
|
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'
![]() 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 ![]() Ten post edytował kubarek 6.04.2008, 20:28:04 -------------------- // ...
Co nieco o mnie ;) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 24.10.2004 Skąd: TG Ostrzeżenie: (0%) ![]() ![]() |
Przedstawiam gotowiec...
![]() Zalety: -zapisywanie/odczytywanie statusu przez cookie -łatwa modyfikacja wyglądu stylem css -szybka integracja ze stroną -kompatybilność z przeglądarkami IE, FF
Jeśli chcemy aby przy pierwszym otwarciu przeglądarki jakiś fragment był domyślnie ukryty to nieco modyfikujemy kod: zamiast
dajemy
Dodatkowo jak ktoś potrzebuje zastosować tutaj elemnt <DIV> zamiast id="nazwa" to może to zrobic tak: Z uwagi na to że na JS nie znam się za bardzo dlatego mam jeszcze do was jedno pytanie, jak przerobić tą fukcję JS powyżej, żeby można było dodać kolejny parametr mówiący o tym czy box ma być domyślnie zamknięty/otwarty po pierwszym otwarciu strony? ShowHide('menu_2', 'true'); //jak true to otwarty a jak false to domyślnie zamknięty PS. zmiany powinny nastąpić we funkcji init() i ShowHide() i jeśli mamy parametr false to tam gdzie było none dajemy block a tam gdzie block dajemy none Dla kogos kto siedzi w JS to będzie prosta przeróbka, pomożecie zatem? Ten post edytował Fixer 16.05.2008, 19:37:18 -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 39 Pomógł: 1 Dołączył: 6.05.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam,
podczepię się pod wątek. Kod usera Fixer działa, jednak nie mam żadnej styczności z JS, a chciałbym poznać sposób na mój problem: otóż będąc w jakimś miejscu strony innym niż sama góra ( suwak po prawej przesunięty maksymalnie w górę ) po kliknięciu na link: Kod <tr><td class="row1" colspan="2" valign="bottom"><b>Menu</b> <a href="#" onclick="javascript:ShowHide('menu__1');"><b>Menu</b></a>( {$who_o} ) <div id="menu__1" style="display: none;"><br />zawartosc</div> </td></tr> strona 'zwija' się na samą górę. Można to porównać do naciśnięcia buttona ![]() Chciałbym by rozwinięcie/zwinięcie nie powodowało zmiany położenia na stronie. Dzięki za wszystkie sugestie. -------------------- intermedia - profesjonalne rozwiązania Invision Power Board
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 288 Pomógł: 12 Dołączył: 2.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Spowodowane jest to parametrem href="#".
Musisz dodać return false, wtedy kliknięcie na link się nie wykona. BTW: Kod onclick="javascript:ShowHide('menu__1'); => Kod onclick="ShowHide('menu__1'); Po co mówić przeglądarce, że onclick trzeba wykonać przez javascript, skoro ona to wie? Użycie "java script:" jest uzasadnione, np. gdy , ale nawet tak się nie robi. ![]() Ten post edytował tommy4 23.09.2008, 08:01:00 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 04:10 |