Вызов функции, отмена старой функции. Таймер
Здравствуйте.
Есть функция, которая постит время на разные элементы на странице, которое высчитывает от момента клика на кнопку у определенного элемента и нынешнего времени. Как сделать так, чтобы при повторном вызове этой функции, когда ей передают новое значение последнего клика, убрать старую функцию. Иначе получается, что накладывается таймер на таймер и пытаются вывестись в одном месте два значения, с момент старого клика, и с момента нынешнего клика. Спасибо. Вот пример функции:
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, время: 00:33. |