Переменная opened
возвращает вам список всех HTML элементов, которые имеют класс large
, и когда вы снова нажимаете на уже увеличенный div
, который автоматически удовлетворяет этим критериям. Итак, происходит следующее: если вы дважды щелкните один и тот же элемент, ваша функция toggleOpen
сначала удалит класс large
из этого элемента, а затем снова добавит его из-за следующей строки в вашем коде -
this.classList.toggle('large');
Лучший способ добиться желаемого - это убедиться, что помимо того, что opened
не является undefined
, вы также должны убедиться, что opened
не тот элемент, который вы щелкнули. Вы можете выполнить sh это, используя-
if(opened != undefined && opened != this)
Вот ссылка на обновленный codepen , чтобы увидеть его в действии.