loadListResults(url.toString()); } }); }); } function initListResultPanel() { applyViewMode(loadSavedViewMode()); initMobileFilters(); initMobileInfiniteScroll(); } function scrollTextListToFirstItem() { var $firstNumber = $('.jieguo .list_zi li:first .num a'); var $fallbackTarget = $('.jieguo .list_zi .tit'); var $target = $firstNumber.length ? $firstNumber : $fallbackTarget; if (!$target.length) { return; } var targetTop = Math.max(0, ($target.offset() ? $target.offset().top : 0) - 120); $('html, body').stop(true).animate({ scrollTop: targetTop }, 220); } function syncListBreadcrumb(url) { var normalizedDigitCount = resolveListDigitCount(url); var breadcrumbText = normalizedDigitCount ? (normalizedDigitCount + '位QQ') : '商品筛选'; var $breadcrumbCurrent = $('.bread a.on').last(); if ($breadcrumbCurrent.length) { $breadcrumbCurrent.text(breadcrumbText); } document.title = getListPageTitle(normalizedDigitCount); } function getListPageTitle(digitCount) { var normalizedDigitCount = String(digitCount || ''); if (normalizedDigitCount && listSeoTitleMap[normalizedDigitCount]) { return listSeoTitleMap[normalizedDigitCount]; } return "99靓号网 - 商品筛选"; } function syncListTopNav(url) { var normalizedDigitCount = resolveListDigitCount(url); var activeLabel = normalizedDigitCount ? (normalizedDigitCount + '位QQ') : ''; $('.pc_nav li').removeClass('on'); if (!activeLabel) { return; } $('.pc_nav li').filter(function () { return $.trim($(this).text()) === activeLabel; }).addClass('on'); } function buildPartialUrl(url) { var partialUrl = new URL(url, window.location.origin); partialUrl.searchParams.set('partial', '1'); return partialUrl.toString(); } function isMobileViewport() { return window.matchMedia('(max-width: 768px)').matches; } function disconnectMobileInfiniteScroll() { if (mobileInfiniteObserver) { mobileInfiniteObserver.disconnect(); mobileInfiniteObserver = null; } $(window).off('scroll.listMobileInfinite'); } function updateMobileInfiniteTrigger(text, isEnd) { var $trigger = $('.jieguo .mobile-infinite-trigger'); if (!$trigger.length) { return; } $trigger.find('span').text(text); $trigger.toggleClass('is-end', !!isEnd); } function appendMobileListResults(url) { var $currentResults = $('.jieguo'); var nextUrl = url || $currentResults.attr('data-next-url') || ''; if (!isMobileViewport() || mobileInfiniteLoading || nextUrl === '' || !$currentResults.length) { return; } if (mobileInfiniteRequest && mobileInfiniteRequest.readyState !== 4) { return; } mobileInfiniteLoading = true; $currentResults.addClass('is-mobile-loading'); updateMobileInfiniteTrigger('正在加载...', false); mobileInfiniteRequest = $.ajax({ url: buildPartialUrl(nextUrl), type: 'GET', dataType: 'html' }).done(function (html) { var $newResults = $(html).filter('.jieguo').first(); if (!$newResults.length) { $newResults = $(html).find('.jieguo').first(); } if (!$newResults.length) { return; } var $newImageItems = $newResults.find('.list_tu .jingpin ul').children(); var $newTextItems = $newResults.find('.list_zi ul').children(); var $imageList = $currentResults.find('.list_tu .jingpin ul'); var $textList = $currentResults.find('.list_zi ul'); if ($newImageItems.length && $imageList.length) { $imageList.append($newImageItems); } if ($newTextItems.length && $textList.length) { $textList.append($newTextItems); } $currentResults.attr('data-current-page', $newResults.attr('data-current-page') || $currentResults.attr('data-current-page') || ''); $currentResults.attr('data-total-pages', $newResults.attr('data-total-pages') || $currentResults.attr('data-total-pages') || ''); $currentResults.attr('data-next-url', $newResults.attr('data-next-url') || ''); var $newTrigger = $newResults.find('.mobile-infinite-trigger'); if ($newTrigger.length) { updateMobileInfiniteTrigger($newTrigger.find('span').text() || '继续下滑加载更多', $newTrigger.hasClass('is-end')); } else { updateMobileInfiniteTrigger('已经到底了', true); } initMobileInfiniteScroll(); }).fail(function (xhr, status) { if (status === 'abort') { return; } updateMobileInfiniteTrigger('加载失败,继续下滑重试', false); }).always(function () { mobileInfiniteLoading = false; $currentResults.removeClass('is-mobile-loading'); mobileInfiniteRequest = null; }); } function initMobileInfiniteScroll() { disconnectMobileInfiniteScroll(); var $results = $('.jieguo'); var $trigger = $results.find('.mobile-infinite-trigger'); if (!isMobileViewport() || !$results.length || !$trigger.length || $results.hasClass('jieguo-empty')) { return; } if (!$results.attr('data-next-url')) { updateMobileInfiniteTrigger('已经到底了', true); return; } if ('IntersectionObserver' in window) { mobileInfiniteObserver = new window.IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { appendMobileListResults(); } }); }, { rootMargin: '0px 0px 240px 0px' }); mobileInfiniteObserver.observe($trigger.get(0)); return; } $(window).on('scroll.listMobileInfinite', function () { var triggerTop = $trigger.offset() ? $trigger.offset().top : 0; var viewportBottom = $(window).scrollTop() + $(window).height() + 240; if (viewportBottom >= triggerTop) { appendMobileListResults(); } }); } function loadListResults(url) { var normalizedUrl = new URL(url, window.location.origin); normalizedUrl.searchParams.delete('partial'); if (currentListRequest && currentListRequest.readyState !== 4) { currentListRequest.abort(); } $('.jieguo').addClass('is-loading'); currentListRequest = $.ajax({ url: buildPartialUrl(normalizedUrl.toString()), type: 'GET', dataType: 'html' }).done(function (html) { var $newResults = $(html); $('.jieguo').replaceWith($newResults); window.history.replaceState({}, '', normalizedUrl.toString()); syncMobileSearchHiddenInputs(normalizedUrl.toString()); syncListBreadcrumb(normalizedUrl.toString()); syncListTopNav(normalizedUrl.toString()); initListResultPanel(); if (pendingListScrollTarget === 'text-first-item') { scrollTextListToFirstItem(); } }).fail(function (xhr, status) { if (status === 'abort') { return; } window.location.href = normalizedUrl.toString(); }).always(function () { currentListRequest = null; pendingListScrollTarget = ''; $('.jieguo').removeClass('is-loading'); }); } $desktopForm.find('.shaixuan_2 input[type="radio"]').on('change', function () { if ($(this).attr('name') === 'price_range') { $desktopForm.find('input[name="price_min"], input[name="price_max"]').val(''); } $desktopForm.trigger('submit'); }); $desktopForm.on('submit', function (event) { event.preventDefault(); var url = new URL($(this).attr('action') || 'list.php', window.location.origin); $(this).serializeArray().forEach(function (item) { if (item.value !== '') { url.searchParams.append(item.name, item.value); } }); loadListResults(url.toString()); }); $mobileSearchForm.on('submit', function (event) { event.preventDefault(); var url = new URL($(this).attr('action') || 'list.php', window.location.origin); $(this).serializeArray().forEach(function (item) { if (item.value !== '') { url.searchParams.append(item.name, item.value); } }); loadListResults(url.toString()); }); $(document).on('click', '#viewModeToggle', function () { var nextMode = $('.list_zi').is(':visible') ? 'image' : 'text'; applyViewMode(nextMode); saveViewMode(nextMode); }); $(document).on('click', '.jieguo .sort-toggle, .jieguo .pages a, .jieguo .list-reset-btn', function (event) { event.preventDefault(); var href = $(this).attr('href'); pendingListScrollTarget = $(this).closest('.pages').length && $('.list_zi').is(':visible') ? 'text-first-item' : ''; if (href) { loadListResults(href); } }); $(document).on('submit', '.jieguo .page-jump', function (event) { event.preventDefault(); pendingListScrollTarget = $('.list_zi').is(':visible') ? 'text-first-item' : ''; var url = new URL($(this).attr('action') || 'list.php', window.location.origin); $(this).serializeArray().forEach(function (item) { if (item.value !== '') { url.searchParams.append(item.name, item.value); } }); loadListResults(url.toString()); }); $(window).off('resize.listMobileInfinite').on('resize.listMobileInfinite', function () { initMobileInfiniteScroll(); }); initListResultPanel(); syncListBreadcrumb(window.location.href); syncListTopNav(window.location.href); }); -->
客服二维码

长按识别图中二维码 添加客服

客服微信

客服微信

扫码加微信

客服QQ

客服QQ

199-0716-6868

营业时间

营业时间

10:00-23:00

返回顶部

返回顶部