Здравствуйте, помогите, пожалуйста, решить проблему:
Сделал на php таймер обратного отсчета, решил добавить с js немного интерактивности, что бы таймер работал и без перезагрузки страницы.
В общем, у меня есть текст на странице такого вида:
....через
27 минут 35 секунд.
<nobr><span id="m"> 27</span><span id="m_label"> минут</span><span id="s"> 35</span><span id="s_label"> секунд</span></nobr>
И собственно js код, который получает числа из 35 и 27 каждую секунду и меняет и сравнивает нужно ли поменять склонение слова(это работает). А когда время доходит 0 в обоих числах, вместо всей фразы вместе с таймером появляется другой текст и цикл прекращается. Так вот при загрузке страницы сразу появляется финальная надпись. Да и если убрать кусок кода появления надписи, то таймер сразу по нулям числа ставить будто игнорируя интервал а потом чрез интервал меняет склонение...
Вот js
$(document).ready(function() {
setTimeout(count_back(), 1000);//начинает работать через секунду
});
function count_back() {
var m = parseFloat($('#m').html());//Минуты
var m_label = $('#m_label').html();//Склоняемое слово "минуты"
var s = parseFloat($('#s').html());//Секунды
var s_label = $('#s_label').html();//Склоняемое слово "секунды"
if (s==0) {//если секунды достигли нуля, следующее число секунд 59
s = 59;
$('#s').html(' '+s);//перезапись секунд
change_s_label(s, s_label);//функция перезапись слова "секунды" (работает корректно)
m--;//ну и собственно снижаем число минут
if (m==0) {//если меняем с 1 на 0
hide_elem('m');//прячем фразу "0 минут" - работает
}
$('#m').html(m);//перезапись минут
change_m_label(m, m_label);//функция перезапись слова "минуты" (работает корректно)
show_elem('s');//проявляем фразу 59 секунд (когда меняется с 1 на 0 скрывается) - должно работать
}
else {//если число секунд не 0, то выполняем стандартную операцию
s--;//уменьшаем секунды на одну
$('#s').html(' '+s);//перезаписываем
change_s_label(s, s_label);//функция перезапись слова "секунды" (работает корректно)
if (s==0) {//если секунды достигли нуля
hide_elem('s');//скрываем фразу "0 секунд" - работает
}
}
if(m==0 && s==0) {//если таймер закончился меняем текст
$('#message :last-child').fadeOut(500).html('Попробуйте снова.').fadeIn(500);
}
else {
setTimeout(count_back(), 1000);//если таймер не закончился повторяем функцию
}
}
Помогите, пожалуйста, ребята