Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.01.2021, 08:22
Профессор
Отправить личное сообщение для Stas1985 Посмотреть профиль Найти все сообщения от Stas1985
 
Регистрация: 05.03.2012
Сообщений: 159

не работают всплывающие окна в карточках продукции
Доброго времени суток форумчане! Подскажите пожалуйста, сам не могу разобраться почему они не работают.
Вот карточка товара _https://lik-astana.kz/poligraficheskie-uslugi/kserokopirovanie/cherno-belaya-kopiya-detail.html тут карты не работают.
Вот категория где лежит эта карточка _https://lik-astana.kz/poligraficheskie-uslugi/kserokopirovanie.html тут уже карты работают.
Пробовал следующие, был вот такой код
(function ($) {
     var jump = function (e) {
         if (e) {
             e.preventDefault();
             var target = $(this).attr("href");
         } else {
             var target = location.hash;
         }
         $('html,body').animate({
             scrollTop: $(target).offset().top
         }, 1000, function () {
             location.hash = target;
         });
     }
     $('html, body').hide();
     $(document).ready(function () {
         $('a[href^=#contact]').bind("click", jump);
         if (location.hash) {
             setTimeout(function () {
                 $('html, body').scrollTop(0).show()
                 jump();
             }, 0);
         } else {
             $('html, body').show();
         }
     });
 })(jQuery)

Заменил вот так
(function (jQuery) {
     var jump = function (e) {
         if (e) {
             e.preventDefault();
             var target = $(this).attr("href");
         } else {
             var target = location.hash;
         }
         jQuery('html,body').animate({
             scrollTop: jQuery (target).offset().top
         }, 1000, function () {
             location.hash = target;
         });
     }
     jQuery('html, body').hide();
     jQuery(document).ready(function () {
         jQuery('a[href^=#contact]').bind("click", jump);
         if (location.hash) {
             setTimeout(function () {
                 jQuery('html, body').scrollTop(0).show()
                 jump();
             }, 0);
         } else {
            jQuery('html, body').show();
         }
     });
 })(jQuery)

Карты не заработали.
Сам не могу разобраться в чем проблема, виноват ли этот код или в чем-то еще.
Скрин на карты прилагаю
Изображения:
Тип файла: jpg скрин.jpg (538.9 Кб, 2 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 25.01.2021, 09:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Stas1985,
попробуйте так ...
(function (jQuery) {
     var jump = function (e) {
         var target = location.hash;
         if (e) {
             e.preventDefault();
             target = $(this).attr("href");
         };
       if(!jQuery(target).length) return;
         jQuery('html,body').animate({
             scrollTop: jQuery (target).offset().top
         }, 1000, function () {
             location.hash = target;
         });
     }
     jQuery('html, body').hide();
     jQuery(document).ready(function () {
         jQuery('a[href^=#contact]').on("click", jump);
         if (location.hash) {
             setTimeout(function () {
                 jQuery('html, body').scrollTop(0).show()
                 jump();
             }, 0);
         } else {
            jQuery('html, body').show();
         }
     });
 })(jQuery)
Ответить с цитированием
  #3 (permalink)  
Старый 25.01.2021, 09:07
Профессор
Отправить личное сообщение для Stas1985 Посмотреть профиль Найти все сообщения от Stas1985
 
Регистрация: 05.03.2012
Сообщений: 159

Так тоже не работает.
Ответить с цитированием
  #4 (permalink)  
Старый 25.01.2021, 14:19
Профессор
Отправить личное сообщение для Stas1985 Посмотреть профиль Найти все сообщения от Stas1985
 
Регистрация: 05.03.2012
Сообщений: 159

Есть еще такой нюанс, при нажатии на карту добавляется якорь #gameos
этот код идет уже в самом окне
jQuery(function() {
	jQuery(document).on("click", function(event){
	     if(event.target.id == "devepmen-barselona") {
	       location.hash = '#gameos';
	       history.replaceState(null, null, null, '');
	     }
	        });
	});
Ответить с цитированием
  #5 (permalink)  
Старый 26.01.2021, 08:36
Профессор
Отправить личное сообщение для Stas1985 Посмотреть профиль Найти все сообщения от Stas1985
 
Регистрация: 05.03.2012
Сообщений: 159

Подскажите пожалуйста, что еще можно предпринять в поиске и решении данной проблемы. Я понимаю что есть конфликт в коде но не могу понять где и как решить.
Ответить с цитированием
  #6 (permalink)  
Старый 26.01.2021, 09:02
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,693

console.log
Средства отладки браузера.
Ответить с цитированием
  #7 (permalink)  
Старый 26.01.2021, 09:13
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,693

Сообщение от Stas1985
.replaceState(null, null, null, '');
У replaceState три параметра
https://developer.mozilla.org/ru/doc...y/replaceState
Ответить с цитированием
  #8 (permalink)  
Старый 26.01.2021, 13:19
Профессор
Отправить личное сообщение для Stas1985 Посмотреть профиль Найти все сообщения от Stas1985
 
Регистрация: 05.03.2012
Сообщений: 159

voraa, если вам не сложно, объясните пожалуйста по подробнее так как в js я не селен и разобраться самому очень сложно.
Ответить с цитированием
  #9 (permalink)  
Старый 27.01.2021, 11:55
Профессор
Отправить личное сообщение для Stas1985 Посмотреть профиль Найти все сообщения от Stas1985
 
Регистрация: 05.03.2012
Сообщений: 159

Понять не могу, почему один и тот-же код в категории работает а в карточке товара нет
_https://lik-astana.kz/imidzhevaya-produktsiya/ordenskie-planki.html - категория
_https://lik-astana.kz/imidzhevaya-produktsiya/ordenskie-planki/ordenskaya-planka-detail.html - карточка товара
Ответить с цитированием
  #10 (permalink)  
Старый 17.02.2021, 07:09
Профессор
Отправить личное сообщение для Stas1985 Посмотреть профиль Найти все сообщения от Stas1985
 
Регистрация: 05.03.2012
Сообщений: 159

Если отключаю этот код
<script>

	jQuery(function() {
	jQuery(document).on("click", function(event){
	     if(event.target.id == "devepmen-kubrina") {
	       location.hash = '#gameos';
	       history.replaceState(null, null, null, ' ');
	     }
	        });
	});

</script>

то карта открывается но по клику на пустое поле карта не закрывается.
Воспроизвести проблему можно тут _https://lik-astana.kz/poligraficheskie-uslugi/nanesenie-logotipa/nanesenie-maski-detail.html
код убран у карты по центру.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рандомные всплывающие окна при заходе на сайт MrNix21 Работа 27 24.06.2015 17:15
Всплывающие окна в контакте Михаил1 Элементы интерфейса 2 25.02.2012 22:26
Firefox 5. Перестали работать всплывающие окна mikel Общие вопросы Javascript 3 24.06.2011 13:36
Открытие нового окна - не работают доп. аргументы Эдди Элементы интерфейса 2 27.06.2010 16:14
Всплывающие окна Silа Общие вопросы Javascript 0 03.11.2009 12:56