Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][JavaScript]Pojedyńcze wybieranie slidetoggle
rafik73
post
Post #1





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

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


Mam taki skrypt:
[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2.  
  3. // when "More" or "Less" (class moreOptionsLink) was clicked.
  4. $(".toggle" ).click(function(){
  5.  
  6. var txt = $(this).text();
  7.  
  8. if(txt=='⇓'){
  9. /*
  10.   * change the text to "Less"
  11.   * change the background color to "red"
  12.   * which means it shows all the options
  13.   */
  14. $(this).text('⇑');
  15. $(this).css("background-color","red");
  16. }
  17.  
  18. else{
  19. /*
  20.   * change the text to "More"
  21.   * change the background color to "green"
  22.   * which means it hides other options
  23.   */
  24. $(this).text('⇓');
  25. $(this).css("background-color","green");
  26. }
  27.  
  28. /*
  29.   * to animate the container of other options
  30.   * we use jQuery "next" to select the "moreOptions" of the current row
  31.   */
  32. $(".contact").slideToggle(200);
  33.  
  34. // so that it won't refresh the page
  35. return false;
  36. });
  37. });
[JAVASCRIPT] pobierz, plaintext


oraz php (widok opisowy):

  1. //tutaj początek pętli A (while)
  2.  
  3. //tutaj zapytanie mysql
  4.  
  5. //tutaj początek pętli B (while do zapytania mysql powyżej)
  6.  
  7. echo '<div><a href="" class="toggle">Contact</a></div>'; //przycisk-link rozsuwania diva o klasie contact
  8.  
  9. echo '<div class="contact">$zawartosc</div>'; //tutaj wyświetla się zawartość tabeli mysql
  10.  
  11. //tutaj koniec pętli B
  12.  
  13. //tutaj koniec pętli A


Problem w tym, że po naciśnięciu przycisku-linku rozsuwania diva rozsuwają się wszystkie wyświetlone w pętli divy z zawartością tabeli mysql.
Zmiana koloru przycisku inicjowana w skrypcie js działa zaś idywidualnie dla każdego wyświetlonego rekordu.

Ten post edytował rafik73 12.10.2015, 19:23:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rafik73
post
Post #2





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

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


Powalczyłem i działa (IMG:style_emoticons/default/exclamation.gif) !!!!
Serdeczne dzięki (IMG:style_emoticons/default/exclamation.gif) !!!!

Mam pytanie o rozszerzenie możliwości powyższego skryptu. Mianowicie mam skrypt jquery, który zwija/rozwija
pojedyńczo, czyli jak w tym temacie, ale chciałem dołączyć przycisk, który zwija/rozwija wszystkie elementy naraz.
Sam skrypt to nie problem. Schody zaczynają się, gdy np rozwinę dwa elementy z pięciu, apotem jednym przyciskiem chcę
zwinąć/rozwinąć wszystko naraz. Efekt jest taki, że te co rozwinąłem pojedyńczo się zwijają a pozostałe nierozwinięte rozwijają.

Skrypt rozwijania pojedyńczego:

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2. $(".staly:even").css("background-color", "#6B3C53");
  3. $(".staly:odd").css("background-color", "#B1AE98");
  4. $(".toggle").click(function () {
  5. $(".contact:even").css("background-color", "#6B3C53");
  6.  
  7. var swapped = $(this).attr("data-swapped");
  8. var init = 'false';
  9.  
  10. if(swapped === 'false'){
  11. var swapImage = $(this).attr("data-swap");
  12. init = true;
  13. }else{
  14. var swapImage = $(this).attr("data-src");
  15. }
  16.  
  17. $(this).attr({
  18. 'src': swapImage,
  19.  
  20. 'data-swapped': init
  21. });
  22.  
  23. $(this).parent().parent().parent().next(".contact").slideToggle(400);
  24.  
  25. return false;
  26. });
  27. });
[JAVASCRIPT] pobierz, plaintext



a poniżej rozwijania grupowego:

[JAVASCRIPT] pobierz, plaintext
  1. $(function()
  2. {
  3. $(".staly:even").css("background-color", "#6B3C53");
  4. $(".staly:odd").css("background-color", "#B1AE98");
  5. $(".toggle_all").click(function()
  6. {
  7. $(".contact:even").css("background-color", "#6B3C53");
  8. var swapped = $(this).attr("data-swapped_all");
  9. var init = 'false';
  10.  
  11. if(swapped === 'false'){
  12. var swapImage = $(this).attr("data-swap_all");
  13. init = true;
  14. }else{
  15. var swapImage = $(this).attr("data-src_all");
  16. }
  17.  
  18. $(this).attr({
  19. 'src': swapImage,
  20.  
  21. 'data-swapped_all': init
  22. });
  23. $(".contact").slideToggle(400);
  24.  
  25.  
  26. return false;
  27. });
  28. });
[JAVASCRIPT] pobierz, plaintext


Żadnych pomysłów?

Ten post edytował rafik73 28.10.2015, 19:49:10
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: 8.10.2025 - 11:07