Изменение CSS с помощью JS влияет только на первый элемент массива - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь изменить свойство CSS display объекта, когда моя ракета игрока сталкивается с планетой, когда игрок находится рядом с планетой, некоторые тексты показывают, что когда он улетает, текст исчезает.

Насколько я могу судить, может быть проблема в том, как я сбрасываю элемент на display: none

Удаление else if полностью показывает правильные элементы, когда я нахожусь рядом с ними.

this.planetArr          = function(x, y, r, c, n){
    this.planet.push        ( new Game.World.Planet(x, y, r, c, n))
};

var item                = null;
var plyr                = this.player;

this.update             = function(){
    var p = this.planet.length - 1;

    for(p; p > -1; --p){
        var plnt = this.planet[p];

        if(this.vector.checkCollision(plyr, plnt)) {
            item = document.querySelector('#' + plnt.name);
            item.style.display = 'block';
        } else if (item) {
            item.style.display = 'none';
            item = null;
        }
    }
};

Только первый элемент в моем массиве работает как задумано, остальные, кажется, пропускают изменение стиля на display: block и идут прямо к сбросу display: none.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...