Внутри функции обратного вызова для прослушивателя кликов вы добавляете новый код html в элемент <div>
основного контейнера, используя его свойство .inner HTML. Это удалит все существующие прослушиватели событий - таким образом, щелчок будет срабатывать только один раз.
Хотя я бы порекомендовал создать новый <div>
с использованием
var newDiv = document.createElement("DIV");
и добавить его в основной контейнер на
document.getElementById('main-container').appendChild(newDiv);
более простое решение в вашем случае заменяет
container.innerHTML+= `
<div class='backSide'>
<h4>${details.name}</h4>
<h4>${details.types[0].type.name}</h4>
</div>
`
на
container.insertAdjacentHTML("afterend", `
<div class='backSide'>
<h4>${details.name}</h4>
<h4>${details.types[0].type.name}</h4>
</div>
`);