Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> setInterval, clarInterval, jQuery, javaScript
eFK
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 1.02.2014

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


Witam serdecznie,

bardzo potrzebuję porady.

Robię coś na kształt e-kantora. W skrypcie mam stworzone kilka wierszy tabeli z id#unit, po kliknięciu na które pobierana jest z odpowiedniego z nich informacja o ilości jednostek danej waluty ile chce kupić klient, a następnie jest to mnożone z ceną za jednostkę i zwracane do klienta jako informacja ile musi zapłacić. Divy są edytowalne, tak że klient może bez problemu wybierać ile jednostek chce kupić. Chcę aby to wszytko odbywało się dynamicznie, bez przeładowywania strony. Niestety setInterval oczywiście mi wariuje, podczas pierwszego kliku jest ok, podczas drugiego wyświetla na zmianę automatycznie oby dwie wartości.

  1. var $buyCurrency = function(){
  2.  
  3. $("td#unit").click(function(){
  4.  
  5. //teoretycznie po kliku najpierw powinien się czyścić interval, co; jak mi się wydaje; powinno zapobiec takiej sytuacji jak moja. Jednak niestety tak nei jest i niezbyt wiem dlaczego.
  6. thisInterval=null;
  7. clearInterval(thisInterval);
  8. thisInterval=setInterval(function(){$displayData()},100);
  9. console.log(thisInterval);
  10.  
  11. var $check=$(this).attr('class');
  12. function $displayData(){ //to co jest w funkcji $displayData na się wykonywać dynamicznie
  13. if($("table#currency td#unit").hasClass($check)&&$("table#currency td#price").hasClass($check)){
  14. var $toBuy=Number($("table#currency td#unit."+$check).text())*Number($("table#currency td#price."+$check).text());
  15. $("td#toBuy").text($toBuy+" "+$check);
  16. }
  17.  
  18. }
  19. ;});
  20. }();

Funkcja jest co prawda w innej funkcji wykonującej się w pętli, ale to nie powinno mieć żadnego znaczenia.
Próbowałam najpierw ustawiać setInterval, a potem dopiero go czyścić, ale to nic nie dało, albo funkcji, która w zależności czy zmienna thisInterval na wartości null, czy nie ustawiał ją odpowiednio ustawić.
Wiem, że brakuje mi po prostu trochę wiedzy, dlatego bardzo proszę o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Po co do tego używać setInterval? Funkcja, jak rozumiem, ma się wywołać raz, po click.


--------------------
Go to the top of the page
+Quote Post
eFK
post
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 1.02.2014

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


estety nie do końca. Click jest używany do identyfikacji pól z odpowiednimi danymi - jeżeli to div#unit.usd, funkcja ma znaleźć pole #prise.usc, i pobrane z nich wartości pomnożyć przez siebie i wyświetlić klientowi jako wynik. Tylko, ze pole #unit jest edytowalne, klient decyduje ile jednostek danej waluty chce kupić. I właśnie te zmiany chcę zrobić dynamicznie, bez przeładowywania strony. Klient wpisuje 10, to mu się od razu mnoży i wyświetla 10*cena danej waluty, ale nie, woli jednak 20 jednostek, to mu się to dynamicznie podmienia... O coś takiego mi chodzi :-)

Ten post edytował eFK 4.03.2017, 11:58:56
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Czyli identyczne jak w tym temacie http://forum.php.pl/index.php?showtopic=25...p;#entry1211209


--------------------
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 Aktualny czas: 21.08.2025 - 18:42