css/javascript переворачивание нескольких карт: сброс других карт

Так что в настоящее время я использую этот: http://jsfiddle.net/nawdpj5j/10/

Теперь мне нужно, чтобы, когда я переворачиваю одну карту (неважно, какую), а затем переворачиваю другую, первая сбрасывает / поворачивает обратно.

Я думаю, что мне нужно добавить что-то здесь:

var init = function() {
var flippers = document.getElementsByClassName("flip");

for(i = 0; i < flippers.length; i++){
    flippers[i].addEventListener( 'click', function(){
        var cardID = this.dataset.targetid;
        var card = document.getElementById(cardID);
        card.toggleClassName('flipped');
}, false);
}


};

Заранее спасибо!

1 ответ

Вы можете получить массив всех перевернутых карт и переворачивать их обратно всякий раз, когда карта переворачивается следующим образом:

var init = function() {
    var flippers = document.getElementsByClassName("flip");
    for (i = 0; i < flippers.length; i++) {
        flippers[i].addEventListener('click', function() {
            var cardID = this.dataset.targetid;
            var card = document.getElementById(cardID);
            var flipped = document.getElementsByClassName('flipped');
            for (i = 0; i < flipped.length; i++) {
                if (card !== flipped[i]) {
                    flipped[i].toggleClassName('flipped');
                }
            }
            card.toggleClassName('flipped');
        }, false);
    }
};
window.addEventListener('DOMContentLoaded', init, false);

Вот ссылка на рабочую демоверсию JS FIDDLE

Другие вопросы по тегам