setTimeout
ожидает функцию в качестве первого параметра.Эта функция будет вызываться, когда истечет время.Но то, что вы предоставили в своем примере кода, является результатом вызова $("#timer").html(c)
Правильный способ использования setTimeout
должен быть таким:как обратный отсчет, и вот пример кода:
function countdown(count, container) { // declare the countdown function.
var $container = $(container);
(function step() {
$container.html(count); // set the timer html
if (count-- > 0) { // decrement counter and stop when counter reaches 0
setTimeout(step, 1000); // if counter is not 0, then issue the next timeout
}
})(); // call step immediately
}
countdown(10, '#timer');
живая демонстрация на http://jsfiddle.net/cazSn/2/
PS: использовать setInterval
будет проще, если вы действительно пытаетесь реализовать обратный отсчет.