Top.Mail.Ru

iRacing Studios

Список лучших игр компании iRacing Studios
`; } card.innerHTML = ` ${iconHtml}

${escapeHtml(cat.name)}

${escapeHtml(cat.description || '')}

`; resultGames.appendChild(card); }); // Новости (БЕЗ ИЗОБРАЖЕНИЙ) news.forEach(newsItem => { const card = document.createElement('div'); card.className = 'news-card'; card.innerHTML = `

${escapeHtml(newsItem.title)}

${escapeHtml(newsItem.short_story || '')}

`; resultNews.appendChild(card); }); }); }); // Функция для экранирования HTML function escapeHtml(text) { if (!text) return ''; const div = document.createElement('div'); div.textContent = text; return div.innerHTML; } tabGames.addEventListener('click', function () { tabGames.classList.add('active'); tabNews.classList.remove('active'); resultGames.classList.add('active'); resultNews.classList.remove('active'); }); tabNews.addEventListener('click', function () { tabNews.classList.add('active'); tabGames.classList.remove('active'); resultNews.classList.add('active'); resultGames.classList.remove('active'); });
Загрузка дополнительных игр...
'); } } } } else { console.warn('Получен пустой HTML'); if (loadMoreBtn.length) { loadMoreBtn.hide(); } if (loadMoreContainer.length) { loadMoreContainer.append('
Больше игр не найдено
'); } } }, error: function(xhr, status, error) { console.error('Ошибка AJAX запроса:', error, xhr.responseText); if (loadMoreBtn.length) { loadMoreBtn.prop('disabled', false).removeClass('loading').show(); } alert('Ошибка при загрузке игр. Пожалуйста, попробуйте еще раз.'); }, complete: function() { isLoading = false; if (loadingIndicator.length) { loadingIndicator.hide(); } } }); } // Обработчик для кнопки "Загрузить еще" if (loadMoreBtn.length) { loadMoreBtn.on('click', loadMoreGames); } // AJAX обработка сортировки для ВСЕХ страниц $('.sort-menu').on('submit', function(e) { e.preventDefault(); const form = $(this); const formData = form.serialize(); // Добавляем флаг AJAX если его еще нет if (formData.indexOf('ajax=') === -1) { form.find('[name]').each(function() { if ($(this).attr('name') === 'ajax') return; }); // Перезагружаем страницу для сортировки form.off('submit').submit(); return; } $.ajax({ url: window.location.pathname, type: 'POST', data: formData, success: function(response) { // Если ответ содержит HTML (обычная загрузка) if ($(response).find('#games-container').length) { // Перезагружаем страницу для полного обновления window.location.reload(); } }, error: function() { // Если AJAX не сработал, отправляем форму обычным способом form.off('submit').submit(); } }); }); // Обработка кликов по фильтрам с предотвращением стандартного поведения // для AJAX-фильтрации (если нужно будет реализовать в будущем) $('#filter-menu a.pjx').on('click', function(e) { // Пока оставляем стандартное поведение - переход по ссылке // В будущем можно добавить AJAX-фильтрацию без перезагрузки }); console.log('Универсальный AJAX загрузчик инициализирован для всех типов страниц'); });
{slinks}
Back to top button
Подписаться

Подпишитесь на нашу
группу ВКонтакте и не пропустите ничего важного!