Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]jQuery- pokazywanie danego diva
Oczko21
post 15.03.2012, 17:16:21
Post #1





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

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
ayeo
post 15.03.2012, 18:28:46
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


  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

Ten post edytował ayeo 15.03.2012, 18:26:11


--------------------
Go to the top of the page
+Quote Post
Oczko21
post 15.03.2012, 19:11:12
Post #3





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

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


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:51