Есть две функции , одна для отчета расстояния между объектами (для диалога) , вторая для размещения объектов на странице . Я использовал в них this и позже добавил их в объект , чтобы не создавать каждый раз уникальную функцию для каждого объекта . Проблема в том , что код не работает с использованием этого самого this или же различных аргументов в функциях , но работает , если назвать имя объекта в самой функции . Как вы понимаете , создавать отдельную функцию для каждого объекта не ахти . Можете пожалуйста объяснить , в чём проблема . Код такой (функцию передвижения не писал) :
$("body").append("<button id='action1'>-</button>");
var talkf = function() {
var distance = function(n) {
var x = img.left - this.left;
var y = img.top - this.top;
return Math.sqrt((x * x) + (y * y));
};
if (distance < 300) {
$("#action1").text("Начать диалог");
} else {
$("#action1").text("-");
};
};
var positionf = function() {
$("#" + this.id).offset({
left: this.left,
top: this.top
});
};
var img = {
id: "1",
left: 100,
top: 200,
position: setInterval(positionf, 200),
};
var img2 = {
id: "2",
left: 500,
top: 600,
position: setInterval(positionf, 200),
talk: talkf
};