Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] chowanie diva po ponownym kliknieciu
Forum PHP.pl > Forum > Przedszkole
miras
Jak w temacie.. mam kod, który wyświetla mi diva po kliknięciu, a jak zrobić, żeby chowało diva po ponownym kliknięciu w ten sam link?


  1. <script type="text/javascript">
  2. function pokaz(diw) {
  3. $("#" + diw).show('slow');
  4. }
  5. function schowaj(diw) {
  6. $("#" + diw).hide('slow');
  7. }
  8. </script>
  9. <a href="#" onclick="pokaz('test1')">Klik</a>
Turson
jQuery
  1. <style type="text/css">
  2. .test{display:none;cursor:pointer}
  3. .hide{display:none;cursor:pointer}
  4.  
  5. <span class="show">Pokaż</span>
  6. <span class="hide">Ukryj</span>
  7. <span class="test">bla bla lorem ipsum<span>
  8.  
  9. $('.show').click(function(){
  10. $('.test').show();
  11. $(this).hide();
  12. $('.hide').show();
  13. });
  14. $('.hide').click(function(){
  15. $(this).hide();
  16. $('.show').show();
  17. $('.test').hide();
  18. });


Poprawione
miras
a w normalnym odnosniku a href nie da sie jakos?

+ ja potrzebuje podania parametru do funkcji - nazwy diva, bo to nie bedzie tylko jeden odnosnik..
boro11
Jak chcesz odnośnik to:
  1. <a href="#" class="show">Pokaż</a>

ale nie wiem jaki to ma sens
miras
odnosnik to pól biedy, najważniejsze jest, żebym parametr do funkcji wprowadzał, żeby nie trzeba było robić 30 funkcji..
com
boro11 nie zrozumiałeś autora, chodziło mu o to że ma takich linków wiecej
po pierwsze rozwiązanie Turosna można zmodyfikować do 2 lini:
[JAVASCRIPT] pobierz, plaintext
  1. $( ".show" ).click(function() {
  2. $( ".test" ).toggle( "slow" );
  3. });
[JAVASCRIPT] pobierz, plaintext

albo jak w manulu zrobić tak:
[JAVASCRIPT] pobierz, plaintext
  1. if ( showOrHide === true ) {
  2. $( ".test" ).show();
  3. showOrHide = false;
  4. } else if ( showOrHide === false ) {
  5. $( ".test" ).hide();
  6. showOrHide = true;
  7. }
[JAVASCRIPT] pobierz, plaintext


a jak chcesz zaradzić temu dla wielu linków to pokaż swój kod smile.gif
miras
mój kod był w pierwszym poście:

  1.  
  2. function pokaz(diw) {
  3. for (n = 1; n <= 30; ++n) {
  4. $("#info" + n).hide();
  5. }
  6. $("#" + diw).show('slow');
  7. }
  8.  
  9. i np.
  10.  
  11. <a href="#" onclick="pokaz('info1');">Klik</a>
  12.  
com
po pierwsze jest teraz inny, a ja chcę zobaczyć całą strukturę bo poco mam się produkować dla przykładu, jak od razu moge zrobić to pod Ciebie smile.gif
miras
no ale to nie jest przyklad ;> tak wygląda mój kod.. jest to strona statyczna.. wszystkie linki są wpisane ręcznie, z bazy się nic nie pobiera.
com
nie rozumiemy się chodzi mi o to co ukrywasz/pokazujesz jaka ma strukturę, żebym mógł się do tego odnieść bo nie wiem czy ma być 10 lików i każdy ukrywać inny element czy jednym ukrywasz kilka itd...
miras
aaa ;> no to jest to:

  1. <div id="info1" style="display: none;">
  2. <div class="lewa">
  3. <div class="limg"><img src="http://www.centrumpapieru.pl/page/data/editor/image/PAPIERY%20TECCO/produktowe_duomatt.jpg" width="200px" height="150px"/></div>
  4. <div class="lldown"></div>
  5. </div>
  6. <div class="infop">
  7. Dwustronny matowy papier powlekany. Tecco Duo Matt staje się świetnym wyborem, kiedy potrzebujemy wysokiej rozdzielczości wydruków reklamowych, wielkoformatowych i użytkowych. Niecodzienną cechą tego papieru jest możliwość zadruku dwustronnego, co otwiera całkiem nowe możliwości przed twórcami reklam.
  8. <br/><br/>
  9. Nie trudno wyobrazić sobie jak dobrze sprawuje się ten papier przy produkcji wydruków eksponowanych w witrynie, kiedy można go podziwiać od zewnątrz jak i wewnątrz lokalu.
  10. <br/><br/>
  11. Mimo zastosowania typowo produkcyjnego papier charakteryzuje wysoka rozdzielczość oraz jakość kolorów powalająca również na zastosowania artystyczne.
  12. </div>
  13.  
  14. <div class="ldown">
  15. - Gramatura: 190gsm <br/>
  16. - Grubość: 235 &#956;<br/>
  17. - Wykończenie typu matowego<br/>
  18. - Szybko schnący<br/>
  19. - Wysokiej rozdzielczości - do 5760 dpi<br/>
  20. - 97,5% nieprzeźroczystości<br/>
  21. - Obustronny<br/>
  22. - Typ nośnika: Papier<br/>
  23. - Przeznaczenie: FOTOGRAFIA
  24. </div>
  25. </div>
com
no prawie doszliśmy do porozumienia biggrin.gif tzn zawartość mnie nie interesuje ale samo działanie tak jak opisałem jak to sie ma ukrwac, dlatego spytałem o struktur bo jakbyś mi wkleił kilka plików id="info1" pustych żeby się lepiej czytało i kilka tych linków to bym wiedział co chcesz uzyskać, ale chyba lepiej po prostu mi to opisz słownie... smile.gif
miras
heh, chodzi o to:

są linki np. Link1 (klikasz w link1 pod tym wysuwa ci sie ten ukryty div)
jezeli klikniesz jeszcze raz w link1 to div sie chowa, jezeli klikniesz w jakis inny link to div pod tym linkiem sie wysuwa kazdy link ma indywidualny div z indywidualną treścią.


com
no i wszystko jasne smile.gif

http://jsfiddle.net/4dYUX/

#edit
http://jsfiddle.net/cc6ea/
miras
dziękówka wink.gif
com
aha tylko strona w html5 smile.gif bo w 4 data-* nie zadziała smile.gif
miras
jak to html? jak mam go 'zainicjowac' bo własnie u mnie nie działa..

mam coś takiego i nie działa..


  1. <html>
  2. <head>
  3. <script type="text/javascript" src="js/jquery-1.4.2.js" ></script>
  4. <script type="text/javascript">
  5. $( "a" ).click(function() {
  6. var div = $(this).data('div');
  7. $( "#"+div ).toggle( "slow" );
  8. });
  9. </script>
  10. </head>
  11.  
  12. <body>
  13. <a href="#" class="show" data-div="info1">Klik</a><br/>
  14. <div id="info1" style="display: none;">aa</div>
  15. <a href="#" class="show" data-div="info2">Klik</a>
  16. <div id="info2" style="display: none;">bb</div>
  17. </body>
  18. </html>


Nieaktualne, już działa smile.gif
boro11
Przy okazji wywal te skrypt z head na koniec dokumentu przed znacznik </body>
W html5 wystarczy samo <script> bez type="text/javascript"
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.