// Функция Быстрого просмотра товара function quickViewMod() { // Получение центральной разметки страницы (для быстрого просмотра) $(document).ready(function(){ $.fn.getColumnContent = function() { var block = ($(this).length && $(this).hasClass('productViewBlock') ? $(this).filter('.productViewBlock') : $('.productViewBlock:eq(0)')); block.find('#main').each(function(){ // Удаляем все блоки, которые не отображаются в быстром просмотре. if(!$(this).hasClass('productView__imageBox') && !$(this).hasClass('productView__shop') && !$(this).hasClass('productView__actions') && !$(this).hasClass('productView__titleBox')) { $(this).remove(); } }); return block; } }); // Быстрый просмотр товара $(document).ready(function(){ // При наведении на блок товара загружаем контент этого товара, который будет использоваться для быстрого просмотра, чтобы загрузка происходила быстрее. $('.product__item').mouseover(function() { // Если в блоке нет ссылки на быстрый просмотр, то не подгружаем никаких данных var link = $(this).find('a.quickViewMod'); if(link.length < 1) { return true; } // Если массив с подгруженными заранее карточками товара для быстрого просмотра ещё не создан - создадим его. if(typeof(document.quickviewPreload) == 'undefined') { document.quickviewPreload = []; } var href = link.attr('href'); href += (false !== href.indexOf('?') ? '&' : '?') + 'only_body=1'; // Если контент по данной ссылке ещё не загружен if(typeof(document.quickviewPreload[href]) == 'undefined') { // Ставим отметку о том, что мы начали загрузку страницы товара document.quickviewPreload[href] = 1; // Делаем запрос на загрузку страницы товара $.get(href, function(content) { // Сохраняем контент, необходимый для быстрого просмотра в специально созданный для этого массив document.quickviewPreload[href] = $(content).getColumnContent(); }) // Если загрузить страницу не удалось, удаляем отметку о том, что мы подгрузили эту страницу .fail(function() { delete document.quickviewPreload[href]; }); } }); }); // Действие при нажатии на кнопку быстрого просмотра. $(document).ready(function(){ $(document).on('click', 'a.quickViewMod', function() { var href = $(this).attr('href'); var name = $(this).attr('data-prodname'); var art = $(this).attr('data-prodart'); href += (false !== href.indexOf('?') ? '&' : '?') + 'only_body=1'; quickViewShowMod(href); $('.productView').removeClass('productViewQuick'); $('.productView').addClass('productViewMod'); $('#fancy__name').val('Уведомить -- ' + name) $('#fancy__art').val(art) return false; }); }); } // Быстрый просмотр товара function quickViewShowMod(href, atempt) { // Если данные по быстрому просмотру уже подгружены if(typeof(document.quickviewPreload[href]) != 'undefined') { // Если мы в режиме загрузки страницы и ждём результата от другой функции, то тоже подождём, когда тот контент загрузится и будет доступен в этом массиве. if(1 == document.quickviewPreload[href]) { // Если попытки ещё не указывались, ставим 0 - первая попытка if(typeof(atempt) == 'undefined') { atempt = 0; // Иначе прибавляем счётчик попыток } else { atempt += 1; // Если больше 500 попыток, то уже прошло 25 секунд и похоже, что быстрый просмотр не подгрузится, отменяем информацию о том, что контент загружен if(atempt > 500) { delete document.quickviewPreload[href]; // TODO сделать вывод красивой таблички alert('Не удалось загрузить страницу товара. Пожалуйста, повторите попытку позже.'); return true; } } // Запустим функцию быстрого просмотра через 5 сотых секунды, вероятно запрошендная страница товара уже подгрузится. setTimeout('quickViewShowMod("' + href + '", '+ atempt +')', 50); return true; } else { $.fancybox.close(); $.fancybox.open(document.quickviewPreload[href]); AddCart(); Addto(); goodsModification(); newModification(); quantity(); } } else { $.get(href, function(content) { $.fancybox.close(); $.fancybox.open($(content).getColumnContent()); AddCart(); Addto(); goodsModification(); newModification(); quantity(); }); } }
Замените его на:
// Функция Быстрого просмотра товара function quickView() { // Получение центральной разметки страницы (для быстрого просмотра) $(document).ready(function(){ $.fn.getColumnContent = function() { var block = ($(this).length && $(this).hasClass('productViewBlock') ? $(this).filter('.productViewBlock') : $('.productViewBlock:eq(0)')); block.find('#main').each(function(){ // Удаляем все блоки, которые не отображаются в быстром просмотре. if(!$(this).hasClass('productView__imageBox') && !$(this).hasClass('productView__shop') && !$(this).hasClass('productView__actions') && !$(this).hasClass('productView__titleBox')) { $(this).remove(); } }); return block; } }); // Быстрый просмотр товара $(document).ready(function(){ // При наведении на блок товара загружаем контент этого товара, который будет использоваться для быстрого просмотра, чтобы загрузка происходила быстрее. $('.product__item').mouseover(function() { // Если в блоке нет ссылки на быстрый просмотр, то не подгружаем никаких данных var link = $(this).find('a.quickview'); if(link.length < 1) { return true; } // Если массив с подгруженными заранее карточками товара для быстрого просмотра ещё не создан - создадим его. if(typeof(document.quickviewPreload) == 'undefined') { document.quickviewPreload = []; } var href = link.attr('href'); href += (false !== href.indexOf('?') ? '&' : '?') + 'only_body=1'; // Если контент по данной ссылке ещё не загружен if(typeof(document.quickviewPreload[href]) == 'undefined') { // Ставим отметку о том, что мы начали загрузку страницы товара document.quickviewPreload[href] = 1; // Делаем запрос на загрузку страницы товара $.get(href, function(content) { // Сохраняем контент, необходимый для быстрого просмотра в специально созданный для этого массив document.quickviewPreload[href] = $(content).getColumnContent(); }) // Если загрузить страницу не удалось, удаляем отметку о том, что мы подгрузили эту страницу .fail(function() { delete document.quickviewPreload[href]; }); } }); }); // Действие при нажатии на кнопку быстрого просмотра. $(document).ready(function(){ $(document).on('click', 'a.quickview', function() { var href = $(this).attr('href'); href += (false !== href.indexOf('?') ? '&' : '?') + 'only_body=1'; quickViewShow(href); $('.fancybox-content .productView').removeClass('productViewMod'); $('.fancybox-content .productView').addClass('productViewQuick'); return false; }); }); } // Быстрый просмотр товара function quickViewShow(href, atempt) { // Если данные по быстрому просмотру уже подгружены if(typeof(document.quickviewPreload[href]) != 'undefined') { // Если мы в режиме загрузки страницы и ждём результата от другой функции, то тоже подождём, когда тот контент загрузится и будет доступен в этом массиве. if(1 == document.quickviewPreload[href]) { // Если попытки ещё не указывались, ставим 0 - первая попытка if(typeof(atempt) == 'undefined') { atempt = 0; // Иначе прибавляем счётчик попыток } else { atempt += 1; // Если больше 500 попыток, то уже прошло 25 секунд и похоже, что быстрый просмотр не подгрузится, отменяем информацию о том, что контент загружен if(atempt > 500) { delete document.quickviewPreload[href]; // TODO сделать вывод красивой таблички alert('Не удалось загрузить страницу товара. Пожалуйста, повторите попытку позже.'); return true; } } // Запустим функцию быстрого просмотра через 5 сотых секунды, вероятно запрошендная страница товара уже подгрузится. setTimeout('quickViewShow("' + href + '", '+ atempt +')', 50); return true; } else { $.fancybox.close(); $.fancybox.open(document.quickviewPreload[href]); AddCart(); Addto(); goodsModification(); quantity(); $('.fancybox-content .productView').removeClass('productViewMod'); $('.fancybox-content .productView').addClass('productViewQuick'); } } else { $.get(href, function(content) { $.fancybox.close(); $.fancybox.open($(content).getColumnContent()); AddCart(); Addto(); goodsModification(); quantity(); $('.fancybox-content .productView').removeClass('productViewMod'); $('.fancybox-content .productView').addClass('productViewQuick'); }); } } // Функция выбора модификаций function quickViewMod() { // Получение центральной разметки страницы (для быстрого просмотра) $(document).ready(function(){ $.fn.getColumnContent = function() { var block = ($(this).length && $(this).hasClass('productViewBlock') ? $(this).filter('.productViewBlock') : $('.productViewBlock:eq(0)')); block.find('#main').each(function(){ // Удаляем все блоки, которые не отображаются в быстром просмотре. if(!$(this).hasClass('productView__imageBox') && !$(this).hasClass('productView__shop') && !$(this).hasClass('productView__actions') && !$(this).hasClass('productView__titleBox')) { $(this).remove(); } }); return block; } }); // Быстрый просмотр товара $(document).ready(function(){ // При наведении на блок товара загружаем контент этого товара, который будет использоваться для быстрого просмотра, чтобы загрузка происходила быстрее. $('.product__item').mouseover(function() { // Если в блоке нет ссылки на быстрый просмотр, то не подгружаем никаких данных var link = $(this).find('a.quickViewMod'); if(link.length < 1) { return true; } // Если массив с подгруженными заранее карточками товара для быстрого просмотра ещё не создан - создадим его. if(typeof(document.quickviewPreload) == 'undefined') { document.quickviewPreload = []; } var href = link.attr('href'); href += (false !== href.indexOf('?') ? '&' : '?') + 'only_body=1'; // Если контент по данной ссылке ещё не загружен if(typeof(document.quickviewPreload[href]) == 'undefined') { // Ставим отметку о том, что мы начали загрузку страницы товара document.quickviewPreload[href] = 1; // Делаем запрос на загрузку страницы товара $.get(href, function(content) { // Сохраняем контент, необходимый для быстрого просмотра в специально созданный для этого массив document.quickviewPreload[href] = $(content).getColumnContent(); }) // Если загрузить страницу не удалось, удаляем отметку о том, что мы подгрузили эту страницу .fail(function() { delete document.quickviewPreload[href]; }); } }); }); // Действие при нажатии на кнопку быстрого просмотра. $(document).ready(function(){ $(document).on('click', 'a.quickViewMod', function() { var href = $(this).attr('href'); href += (false !== href.indexOf('?') ? '&' : '?') + 'only_body=1'; quickViewShowMod(href); $('.fancybox-content .productView').removeClass('productViewQuick'); $('.fancybox-content .productView').addClass('productViewMod'); return false; }); }); } // Быстрый просмотр модификаций function quickViewShowMod(href, atempt) { // Если данные по быстрому просмотру уже подгружены if(typeof(document.quickviewPreload[href]) != 'undefined') { // Если мы в режиме загрузки страницы и ждём результата от другой функции, то тоже подождём, когда тот контент загрузится и будет доступен в этом массиве. if(1 == document.quickviewPreload[href]) { // Если попытки ещё не указывались, ставим 0 - первая попытка if(typeof(atempt) == 'undefined') { atempt = 0; // Иначе прибавляем счётчик попыток } else { atempt += 1; // Если больше 500 попыток, то уже прошло 25 секунд и похоже, что быстрый просмотр не подгрузится, отменяем информацию о том, что контент загружен if(atempt > 500) { delete document.quickviewPreload[href]; // TODO сделать вывод красивой таблички alert('Не удалось загрузить страницу товара. Пожалуйста, повторите попытку позже.'); return true; } } // Запустим функцию быстрого просмотра через 5 сотых секунды, вероятно запрошендная страница товара уже подгрузится. setTimeout('quickViewShowMod("' + href + '", '+ atempt +')', 50); return true; } else { $.fancybox.close(); $.fancybox.open(document.quickviewPreload[href]); AddCart(); Addto(); goodsModification(); quantity(); $('.fancybox-content .productView').removeClass('productViewQuick'); $('.fancybox-content .productView').addClass('productViewMod'); } } else { $.get(href, function(content) { $.fancybox.close(); $.fancybox.open($(content).getColumnContent()); AddCart(); Addto(); goodsModification(); quantity(); $('.fancybox-content .productView').removeClass('productViewQuick'); $('.fancybox-content .productView').addClass('productViewMod'); }); } }