Javascript.RU

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

не работают всплывающие окна в карточках продукции
Доброго времени суток форумчане! Подскажите пожалуйста, сам не могу разобраться почему они не работают.
Вот карточка товара _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, 08:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,152

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, 08:07
Кандидат Javascript-наук
Отправить личное сообщение для Stas1985 Посмотреть профиль Найти все сообщения от Stas1985
 
Регистрация: 05.03.2012
Сообщений: 128

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

Есть еще такой нюанс, при нажатии на карту добавляется якорь #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, 07:36
Кандидат Javascript-наук
Отправить личное сообщение для Stas1985 Посмотреть профиль Найти все сообщения от Stas1985
 
Регистрация: 05.03.2012
Сообщений: 128

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

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

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

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

Понять не могу, почему один и тот-же код в категории работает а в карточке товара нет
_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, 06:09
Кандидат Javascript-наук
Отправить личное сообщение для Stas1985 Посмотреть профиль Найти все сообщения от Stas1985
 
Регистрация: 05.03.2012
Сообщений: 128

Если отключаю этот код
<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 20:26
Firefox 5. Перестали работать всплывающие окна mikel Общие вопросы Javascript 3 24.06.2011 12:36
Открытие нового окна - не работают доп. аргументы Эдди Элементы интерфейса 2 27.06.2010 15:14
Всплывающие окна Silа Общие вопросы Javascript 0 03.11.2009 11:56