Я создаю функцию для регулярного обновления фоновой позиции узла HTML. Функция работает для одного узла, но при вызове нескольких узлов (в следующем примере) эта функция затрагивает только последний узел.
В соответствии с предупреждением (индекс) внутри функции, setInverval () вызывается для каждого узла.
Я не могу понять, почему это не вступает в силу.
http://jsfiddle.net/GqNgs/1/
var bgImgAnimate = function (settings) {
$.each(settings.nodeList, function (index, node) {
thisNode = $(node);
var thisPosition;
setInterval(function () {
alert(index);
//calculate the position before position the image
thisPosition = - settings.frameWidth * settings.currentFrame;
thisNode.css('backgroundPosition', (thisPosition + 'px') + ' ' + (settings.verticalPos + 'px'));
}, settings.interval);
});
};
var settings = {
nodeList: $('#star1, #star2, #star3'),
verticalPos: 0,
currentFrame: 1,
frameWidth: 26,
startTime: 2,
frameNumber: 10,
interval: 200
}
bgImgAnimate(settings);