Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Zwiększanie wartości licznika
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
sytluk
Witam,

tworzę skrypt dynamicznie dodający wiersze tabeli, jednak do tego potrzebuję zmiennej zwiększającej swą wartość. Niestety poniższy kod nie dzała, zmienna i ma cały czas wartość początkową. Jak zmienić kod, aby wyświetlana wartość licznika zwiększała się?

Tabelka w HTML:
  1. <table border="1" id="tabela">
  2. <tr>
  3. <td>1: </td>
  4. <td>tytul</td>
  5. <td><span id="dodaj">Dodaj</span> <span id="usun">Usun</span></td>
  6. </tr>


kod jQuery:
  1. $(document).ready(function()
  2. {
  3. var i = 2;
  4. var szablon = '<tr><td>'+i+'</td><td>wartosc</td><td>przyciski</td></tr>';
  5.  
  6. $('#dodaj').click(function(){
  7. $('#tabela tbody').append(szablon);
  8. i++;
  9. });
  10.  
  11. $('#usun').click(function(){
  12. $('#tabela tr:last').remove();
  13. i--;
  14. });
  15. });


Niestety w pierwszej kolumnie cały czas wyświetla się watość "2" zamiast zwiększającej się wartości.
d3ut3r
Zmienna jest deklarowana tylko raz, nie za każdym razem kiedy jest wywoływana.

zrób po prostu:

[JAVASCRIPT] pobierz, plaintext
  1. $('#tabela tbody').append('<tr><td>'+i+'</td><td>wartosc</td><td>przyciski</td></tr>');
[JAVASCRIPT] pobierz, plaintext


zamiast

[JAVASCRIPT] pobierz, plaintext
  1. $('#tabela tbody').append(szablon);
[JAVASCRIPT] pobierz, plaintext
sytluk
Dzięki d3ut3r, zmienna jest po prostu w złym miejscu, teraz działa:

  1. $(document).ready(function()
  2. {
  3. var i = 2;
  4.  
  5. $('#dodaj').click(function(){
  6. var szablon = '<tr><td>'+i+'</td><td>wartosc</td><td>przyciski</td></tr>';
  7. $('#tabela tbody').append(szablon);
  8. i++;
  9. });
  10.  
  11. $('#usun').click(function(){
  12. $('#tabela tr:last').remove();
  13. i--;
  14. });
  15. });
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.