У меня проблема с некоторой функцией, которую я пишу. Мое «bateau» - это объект, который имеет положение x и y, чтобы поместить его в мой объект «решетка», который представляет собой таблицу элементов «bateau».
Joueur.prototype.placeFullBateau = function(grille, bateau) {
var x = bateau.positionX;
var y = bateau.positionY;
var direction = bateau.direction;
if (direction == "droite") {
for (var i = 0; i <= bateau.taille-1; i++) {
grille.plateau[x][y+i] = $(bateau);
console.log(bateau);
console.log($(bateau));
console.log("Bateau : "+$(bateau).get(0).nom+", positionY : "+grille.plateau[x][y+i].get(0).positionY);
console.log(grille.plateau[x][y+i]);
$(bateau).get(0).positionY += 1;
};
};
В console.log() из «Бато», мой & Позиция X хороши Позиция Y, они меняются, как я хочу, чтобы изменить (я показываю только две линии, это «Бато» занимает 5) :
Object { nom: "Porte-avion", taille: 5, positionX: 4, positionY: 2, direction: "droite" } test.js:100:5
Object { nom: "Porte-avion", taille: 5, positionX: 4, positionY: 3, direction: "droite" } test.js:100:5
в console.log() из «$ (Bateau)», то Позиция Y (или Позиция X, в зависимости от того, я хочу, чтобы отличаться) запоминает последнее значение, оно принято. Здесь позиция Y будет всегда 7 (поскольку она начинается с 2, а размер - 5).
Я пытаюсь:
grille.plateau[x][y+i] = $(bateau);
grille.plateau[x][y+i].get(0).positionY = bateau.positionY;
$(bateau).get(0).positionY += 1;
Я потерял .. Надеюсь, я дал достаточно информации, чтобы получить некоторую помощь .. Я бы не вставить весь код/,
Вот скрипка: https://jsfiddle.net/0jaL7svo/ Не работает, отсутствуют изображения, которые показывают, когда я нажимаю на ячейку. Что я делаю, когда я нажимаю на ячейку, я беру ее идентификатор. Проблема в том, что идентификатор некоторых ячеек (который имеет объект в нем) неверен, потому что он принимает bateau.positionX & bateau.positionY & bateau.numJoueur. (Похоже, «441», для ячейки (4,4) игрока 1.) Вот полный рабочий проект: (см. Комментарий ниже, не может размещать две ссылки). Просто разархивируйте и загрузите локально (файловая система Linux).
Приветствия Krach
Не могли бы вы добавить рабочий пример кода в http://jsfiddle.net. Трудно следить за тем, что происходит/что вы хотите сделать, только из письменного описания. –
Зачем вам вообще нужно обертывать объект в '$()'? Не совсем понятно, что вы пытаетесь сделать. – charlietfl
Здесь: https://jsfiddle.net/0jaL7svo/ Это не работает, потому что я использую образы, когда нажимаю «td», который меняет его фон. – Krach