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.
<script> var $buyCurrency = function(){ $("td#unit").click(function(){ //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. thisInterval=null; clearInterval(thisInterval); thisInterval=setInterval(function(){$displayData()},100); console.log(thisInterval); var $check=$(this).attr('class'); function $displayData(){ //to co jest w funkcji $displayData na się wykonywać dynamicznie if($("table#currency td#unit").hasClass($check)&&$("table#currency td#price").hasClass($check)){ var $toBuy=Number($("table#currency td#unit."+$check).text())*Number($("table#currency td#price."+$check).text()); $("td#toBuy").text($toBuy+" "+$check); } } ;}); }(); </script>
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