Я аннотирую источник, чтобы вы могли что-то узнать:
Сохранить ссылку на массив карточек.
var cards = $('#cards div');
Первая перевернутая карта будет вне нашего массива.
var flippedIndex = cards.length;
Далее мы создаем массив (такой же длины, что и массив cards
), содержащий информацию о том, какие карты перевернуты.
var flipped = new Array(flippedIndex);
Функция flip
анимирует и изменяет атрибут класса карты.
var flip = function (card, toggle) {
card.slideUp(function () {
card.toggleClass('back', toggle)
.slideDown();
});
};
Теперь мы установили прослушиватель кликов.
cards.click(function () {
var card = $(this),
.index()
(http://api.jquery.com/index/) отображает положение карты слева направо.
index = card.index();
Найдите наш массив flipped
, чтобы увидеть, перевернулась ли карта, и убедитесь, что это последняя перевернутая карта.
if (!flipped[index] && index + 1 === flippedIndex) {
flippedIndex = index;
Здесь мы переворачиваем карту.
flip(card, (flipped[index] = true));
} else if (flipped[index] && index === flippedIndex) {
flippedIndex++;
Здесь мы откроем его.
flip(card, (flipped[index] = false));
}
});