Доброго времени суток. Столкнулся со следующей проблемой. Подскажите, пожалуйста, ее решение. Вот скрипт который визуально с заданным интервалом "накручивает" значение от опции start в опцию end :
var $j = jQuery.noConflict();
$j(document).ready(function(){
;(function($j) {
$j.fn.counter = function(options) {
var defaults = {
start: 0,
end: 10,
time: 10,
step: 1000,
callback: function() { }
}
var options = $j.extend(defaults, options);
var counterFunc = function(el, increment, end, step) {
var value = parseInt(el.html(), 10) + increment;
if(value >= end) {
el.html(Math.round(end));
options.callback();
} else {
el.html(Math.round(value));
setTimeout(counterFunc, step, el, increment, end, step);
}
}
$j(this).html(Math.round(options.start));
var increment = (options.end - options.start) / ((1000 / options.step) * options.time);
(function(e, i, o, s) {
setTimeout(counterFunc, s, e, i, o, s);
})($j(this), increment, options.end, options.step);
}
})($j);
});
Вызывается так :
$j('#main-counter1').counter({
start: 0,
end: 15923,
time: 0.1,
step: 1,
callback: function() {}
});
Работает нормально во всех браузерах кроме IE 8-9 (ниже версии не проверял. В IE10 работает). Выдает в IE 8-9 такую ошибку:
SCRIPT5007: Не удалось получить свойство "html" ссылки, значение которой не определено или является NULL
Ругается на строку скрипта
var value = parseInt(el.html(), 10) + increment;