Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Заставить машину поехать (https://javascript.ru/forum/jquery/70237-zastavit-mashinu-poekhat.html)

plug-ugly 21.08.2017 19:22

Заставить машину поехать
 
Добрый вечер!
Задача элементарная - заставить машинку тронуться с места, но что-то не выходит. Ошибка: Uncaught TypeError: Cannot read property 'css' of undefined.
В данном коде используется метод css, как описано в книге, он (данный метод) лучше справляется с несколькими объектами нежели offset.
Если вручную "двигать машину", то есть tesla.moveRight(); - то ошибки не выдает.

Подскажите на что обратить внимание, пожалуйста!

let Car = function (x, y) {
	this.x = x;
	this.y = y;
};

Car.prototype.draw = function () {
	var carHtml = '<img src="http://nostarch.com/images/car.png">'; 
	
	this.carElement = $(carHtml);
	
	this.carElement.css({
		position: "absolute",
		left: this.x,
		top: this.y
	});
	
	$("body").append(this.carElement); 
};

Car.prototype.moveRight = function () {
	this.x += 15;
	
	this.carElement.css({
		left: this.x,
		top: this.y
	});
};

let tesla = new Car(20, 20);
let nissan = new Car(100, 200);

tesla.draw();
nissan.draw();

setInterval(tesla.moveRight, 30);

рони 21.08.2017 19:27

plug-ugly,
setInterval(tesla.moveRight.bind(tesla), 30);

или
setInterval(function() {
  tesla.moveRight()
}, 30);

plug-ugly 21.08.2017 19:46

Спасибо большое! Все получилось!

А что за метод такой bind()?

рони 21.08.2017 19:57

plug-ugly,
Привязка контекста

plug-ugly 21.08.2017 20:04

Спасибо!


Часовой пояс GMT +3, время: 21:11.