Вызов функции, отмена старой функции. Таймер
Здравствуйте.
Есть функция, которая постит время на разные элементы на странице, которое высчитывает от момента клика на кнопку у определенного элемента и нынешнего времени. Как сделать так, чтобы при повторном вызове этой функции, когда ей передают новое значение последнего клика, убрать старую функцию. Иначе получается, что накладывается таймер на таймер и пытаются вывестись в одном месте два значения, с момент старого клика, и с момента нынешнего клика. Спасибо. Вот пример функции: function Posting(postTimer, postId, postUptime, postSR){ document.querySelector('#ratenow_'+postId).innerHTML = postSR; var Kur = setInterval( function(){ var nowtime = new Date(); var nt = nowtime.getTime(); var diff = nt-Date.parse(postUptime); var timestr = parseInt(diff/60000)+':'+addZeros(parseInt((diff/1000)%60)); document.querySelector('#timer_'+postId).innerHTML = timestr; },1000 ); } |
finlolo,
var Kur; function Posting(postTimer, postId, postUptime, postSR){ document.querySelector('#ratenow_'+postId).innerHTML = postSR; window.clearInterval(Kur); Kur = setInterval( function(){ var nowtime = new Date(); var nt = nowtime.getTime(); var diff = nt-Date.parse(postUptime); var timestr = parseInt(diff/60000)+':'+addZeros(parseInt((diff/1000)%60)); document.querySelector('#timer_'+postId).innerHTML = timestr; },1000 ); } |
рони,
такой способ у меня почему-то не работает. |
finlolo,
что консоль пишет? |
рони,
ничего. у меня по нажатию приходят новые данные, вызывается эта функция, которая постит время и новые значения с window.clearInterval(Kur); но новые данные выводятся поверх старых и так далее.. в общем, как и было. |
finlolo,
значит вы что-то не договариваите. |
рони,
вероятно я до этого допустил ошибку. еще раз переписал как показали. сейчас у меня из 5 таймеров на странице работает только один. Консоль ошибок не выдает . |
finlolo,
? |
Цитата:
|
finlolo,
... var Kur = {}; function Posting(postTimer, postId, postUptime, postSR){ document.querySelector('#ratenow_'+postId).innerHTML = postSR; Kur[postId] && window.clearInterval(Kur[postId]); Kur[postId] = setInterval( function(){ var nowtime = new Date(); var nt = nowtime.getTime(); var diff = nt-Date.parse(postUptime); var timestr = parseInt(diff/60000)+':'+addZeros(parseInt((diff/1000)%60)); document.querySelector('#timer_'+postId).innerHTML = timestr; },1000 ); } |
Часовой пояс GMT +3, время: 06:14. |