Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Javascript] Pokaż/ukryj elementy listy
Forum PHP.pl > Forum > Przedszkole
peja1990
Witam,
mam pewien problem z napisaniem skryptu JS, może najpierw pokażę kodzik, który już napisałem a później go opiszę smile.gif

  1. $(document).ready(function() {
  2. var i = 0001;
  3. // Ta funkcja odpowiada za nadanie ID elementom listy w formie 4 cyfrowej
  4. $("div.row.server").each(function() {
  5. var id = (i++) + "";
  6. if(id.length == 1) {
  7. id = "000" + id;
  8. }
  9. else if(id.length == 2) {
  10. id = "00" + id;
  11. }
  12. else if(id.length == 3) {
  13. id = "0" + id;
  14. } else {
  15. id = id;
  16. }
  17. $(this).attr("id",id);
  18. });
  19. // Ta funkcja odpowiada za wyświetlenie elementów o ID (0-10)
  20. $("div.row.server").each(function showing() {
  21. fromID = 0;
  22. toID = 10;
  23. var idRow = Math.round($(this).attr("id"));
  24. if(idRow >= fromID && idRow <= toID) {
  25. $(this).show();
  26. } else {
  27. $(this).hide();
  28. }
  29. });
  30. // Ta funkcja powinna odpowiadać za zwiększenie vartości zmiennej "fromID" jak i "toID" o 1, gdy klikniemy w div'a, którego id zdefiniowałem jako "down"
  31. $("div.scrool#down").click(function() {
  32. fromID += 1;
  33. toID += 1;
  34. showing();
  35. });
  36. });


Tak więc pierwsza i druga funkcja działa poprawnie, jednak trzecia która ma mieć za zadanie zwiększenie wartości dwóch zmiennych o 1 po kliknięciu w div'a nie działa ;(
Po prostu brak efektów.
Bardzo proszę Was o pomoc, za którą będę bardzo wdzięczny.

Serdecznie pozdrawiam,
Kamil Dunaj
strife
Poczytaj o zasięgu zmiennych, w Twoim przypadku zmienne fromID i toID nie są widoczne w ciele tej funkcji. Swoją drogą powinieneś mieć jakiś błąd hm .. używasz firebug'a? Jak nie powinieneś.
peja1990
Cytat(strife @ 30.01.2012, 14:18:19 ) *
Poczytaj o zasięgu zmiennych, w Twoim przypadku zmienne fromID i toID nie są widoczne w ciele tej funkcji. Swoją drogą powinieneś mieć jakiś błąd hm .. używasz firebug'a? Jak nie powinieneś.


No ok, a więc co proponowałbyś zmienić w moim kodzie ?
strife
Widoczność zmiennych? biggrin.gif

Dodaj na górze pod var i = 0001;

  1. var fromID = 0;
  2. var toID = 0;


A tak poza tym to co to jest showing(); ? Napisz lepiej co chcesz osiągnać.

I jeszcze jedno, co pokazuje Ci firebug?
peja1990
Cytat(strife @ 30.01.2012, 14:34:43 ) *
Widoczność zmiennych? biggrin.gif

Dodaj na górze pod var i = 0001;

  1. var fromID = 0;
  2. var toID = 0;


A tak poza tym to co to jest showing(); ? Napisz lepiej co chcesz osiągnać.

I jeszcze jedno, co pokazuje Ci firebug?


Tak też zrobiłem, lecz nadal nie ma efektów ;(

showing(); to powtórne wywołanie funkcji, by pokazało mi elementy o id (1-11), a nie (0-10) tak jak jest to zdefiniowane domyślnie w skrypcie...
Firebug:
Kod
Uncaught ReferenceError: showing is not defined

chyba o to Ci chodzi wink.gif

A jeżeli chodzi o to jaki efekt chcę tym osiągnąć, proszę przedstawiam to graficznie:
strife
Cytat(peja1990 @ 30.01.2012, 14:35:57 ) *
Firebug:
Kod
Uncaught ReferenceError: showing is not defined

chyba o to Ci chodzi wink.gif

Tak dokładnie o to mi chodzi, przenieś funkcję showing wyżej aby była widoczna z poziomu innych konstrukcji. Twój each wtedy wyglądał by

  1. $.each(function() {
  2. showing($(this));
  3. });
  4.  
  5. // i gdzies poza tym wszystkim
  6. function showing(obj) {
  7. // gdzie obj to Twoje dawne $(this)
  8. }


I pamiętaj o tym, aby nie ignorować błędów javascript'owych!
peja1990
Cytat(strife @ 30.01.2012, 15:03:49 ) *
Tak dokładnie o to mi chodzi, przenieś funkcję showing wyżej aby była widoczna z poziomu innych konstrukcji. Twój each wtedy wyglądał by

  1. $.each(function() {
  2. showing($(this));
  3. });
  4.  
  5. // i gdzies poza tym wszystkim
  6. function showing(obj) {
  7. // gdzie obj to Twoje dawne $(this)
  8. }


I pamiętaj o tym, aby nie ignorować błędów javascript'owych!



Poradziłem sobie w inny sposób ale dzięki, dla Ciebie strife leci pomógł wink.gif wink.gif wink.gif
  1. $(document).ready(function() {
  2. var i = 0001;
  3. var fromID = 1;
  4. var toID = 10;
  5. $("div.row.server").each(function() {
  6. var id = (i++) + "";
  7. if(id.length == 1) {
  8. id = "000" + id;
  9. }
  10. else if(id.length == 2) {
  11. id = "00" + id;
  12. }
  13. else if(id.length == 3) {
  14. id = "0" + id;
  15. } else {
  16. id = id;
  17. }
  18. $(this).attr("id",id);
  19. });
  20. function showing() {
  21. $("div.row.server").each(function() {
  22. var idRow = Math.round($(this).attr("id"));
  23. if(idRow >= fromID && idRow <= toID) {
  24. $(this).show();
  25. } else {
  26. $(this).hide();
  27. }
  28. });
  29. };
  30. showing();
  31. $("div.scrool#down").click(function() {
  32. fromID += 1;
  33. toID += 1;
  34. showing();
  35. });
  36. });



Pozdrawiam
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.