Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]jQuery- pokazywanie danego diva
Forum PHP.pl > Forum > Przedszkole
Oczko21
Witam,
Natknąłem się niestety znowu na problem i nie daje rady rozwiązać go sam :/
Mam takie 3 div, wszystkie są identyczne, chciałbym aby po kliknięciu w jeden z nich, pozostałe dwa chowały się, a ten który został klikniety wysunął się.
Wygląda to mniej więcej tak:
  1. <div id="right-boxes">
  2.  
  3. <div id="box">
  4. <div id="header">
  5. </div>
  6. <div id="box-text">
  7. </div>
  8. </div>
  9.  
  10. <div id="box">
  11. <div id="header">
  12. </div>
  13. <div id="box-text">
  14. </div>
  15. </div>
  16.  
  17. <div id="box">
  18. <div id="header">
  19. </div>
  20. <div id="box-text">
  21. </div>
  22. </div>
  23.  
  24. </div>

I tutaj moje wypociny z jQuery:
  1. $(function(){
  2.  
  3. $("#right-boxes").toggle(function(){
  4.  
  5. $("#box #box-text").animate({width: "0px"}, 750 );
  6. },
  7. function(){
  8. $("#box #box-text").animate({width: "200px"}, 750 );
  9. });
  10. })

Jak można się domyślić, wszystkie 3 boxy sie chowają, a po ponownym kliknięciu wysuwają. Prosiłbym o pomoc, nie wiem czy do tego co chce osiągnąć toggle() jest dobrym rozwiązaniem? Druga sprawa w jaki sposób moge przekazać w jQuery dany element, tzn żeby ten klikniety div się wysunął, a nie jakiś inny, mająć na uwadze to iż wszystkie mają takie same ID i strukture.
Z góry dziękuję za jakieś sugestie.
ayeo
  1. <div id="right-boxes">
  2. <div class="box"></div>
  3. <div class="box"></div>
  4. <div class="box"></div>
  5. </div>
  6.  
  7.  
  8. $(".box").click(function()
  9. {
  10. $(".box").animate( { width: "0px" }, { queue: false, duration: 750 } );
  11. $(this).animate( { width: "200px" }, { queue: false, duration: 750 } );
  12. });
  13. </script>


Tu masz paczkę jak coś biggrin.gif

http://q.i-systems.pl/file/32445aa2.zip
Oczko21
Dzięki Wielkie!
Działa jak należy, tylko pojawiały się teraz inne problemy:
1. Wtyczk w FireFoxie wyrzuca mi taki błąd
Cytat
((f.event.special[r.origTyoe] ||{}).handle || r.handler).apply is not a function

błąd pojawia w pliku z biblioteką jQuery, mimo iż nic tam nie majstrowałem

2. Teraz ten bardziej poważny błąd:
HTML:
  1. <div id="right-boxes">
  2. <div class="box">
  3. <p>Tekst 1</p>
  4. </div>
  5. <div class="box">
  6. <p>Tekst 2</p>
  7. </div>
  8. <div class="box">
  9. <p>Tekst 3</p>
  10. </div>
  11. </div>

W pliku CSS przy p mam ustawione display:none. Chciałbym aby tekst pojawiał się tylko w tym boxie który jest aktywny, więc zrobiłem to tak:
java script:
  1. $(".box").click(function()
  2. {
  3. $(".box").animate( { width: "0px" }, { queue: false, duration: 750 } );
  4. $(this).animate( { width: "200px" }, { queue: false, duration: 750 } );
  5. $(this).css("display", "block");
  6. });

I nie bardzo chce to zadziałać, próbowałem to ugryźć też tak:
  1. $(".box").click(function()
  2. {
  3. $(".box").animate( { width: "0px" }, { queue: false, duration: 750 } );
  4. $(this).animate( { width: "200px" }, { queue: false, duration: 750 }, $(this).css("display", "block"));
  5. });

Ale dalej brak rządanego efektu.
Mogę też prosić o pomoc w tym? smile.gif
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.