Я делаю анимацию, что каждый элемент списка будет плавно перемещаться внутри его обертки. Я пытаюсь собрать образец прототипального наследования, но он этого не делает. Есть несколько мест, которые, по моему мнению, могут быть причиной этой проблемы, но мне нужно посоветоваться.jQuery - случайная движущаяся анимация с использованием прототипального шаблона наследования
function Menu($item) {
this.item = $item;
};
Menu.prototype.makeNewPosition = function ($container) {
var h = $container.height() - 50;
var w = $container.width() - 50;
var nh = Math.floor(Math.random() * h);
var nw = Math.floor(Math.random() * w);
return [nh, nw];
};
Menu.prototype.move = function() {
$.each(this.item, function(index, value) {
var newq = this.makeNewPosition(value.parent());
value.animate({
top: newq[0],
left: newq[1]
}, 400, function() {
this.move();
});
});
};
var $menu = new Menu($('.nav li'));
$menu.move();
В move
функции есть animate
и в этом я звоню move
снова запустить анимацию на неопределенное время. Если он вызывает себя в прототипной структуре, можно ли его называть this
?
Непонятно также об использовании $.each
в пределах move
функция.
Вот JSfiddle
любые ошибки консоли, чтобы сообщить? –
'Uncaught TypeError: значение.parent не является функцией' находится в консоли. –
Я вижу это сейчас. Думаю, мне нужно обернуть 'значение' как объект jQuery для доступа к parent()'? –