Код неверен во многих отношениях: (.
Все ваши функции вызываются в одно и то же время, потому что их время (t) одинаково.
, если вы хотите увеличить t
вам, вероятно, не следует объявлять его при каждом доступе (используйте var t = ...
только один раз; после этого вы можете получить к нему доступ по его имени: t = ...
), и вам, вероятно, следует использовать +=
вместо =+
:
a += b
является ярлыком для a = a + b
, а a =+ b
является ярлыком для a = parseInt(b)
.
Вы, вероятно, хотели написать:
var timer = [];
var t=0;
var step=1000;
counter.hide();
t += step;
timer[0] = setTimeout("$('#twCharCount').show()", t);
t += step;
timer[1] = setTimeout("$('#twCharCount').hide()", t);
t += step;
timer[2] = setTimeout("$('#twCharCount').show()", t);
t += step;
timer[3] = setTimeout("$('#twCharCount').hide()", t);
t += step;
timer[4] = setTimeout("$('#twCharCount').show()", t);
Еще одна вещь, лучше передатьФункция, чем строка, как первый параметр для setTimeout
функции:
setTimeout(function(){$('#twCharCount').show();},t);
Извините, но я не могу помочь себе, это оптимизированный код для вас:
var timer = [],
step = 1000,
n = 4,
el = $('#twChartCount');
for(var i=0;i<n;i++)
if(i%2)
timer[i] = setTimeout(function(){el.hide();},i*step);
else
timer[i] = setTimeout(function(){el.show()},i*step);