Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   не работают всплывающие окна в карточках продукции (https://javascript.ru/forum/dom-window/81753-ne-rabotayut-vsplyvayushhie-okna-v-kartochkakh-produkcii.html)

Stas1985 25.01.2021 08:22

не работают всплывающие окна в карточках продукции
 
Вложений: 1
Доброго времени суток форумчане! Подскажите пожалуйста, сам не могу разобраться почему они не работают.
Вот карточка товара _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)

Карты не заработали.
Сам не могу разобраться в чем проблема, виноват ли этот код или в чем-то еще.
Скрин на карты прилагаю

рони 25.01.2021 09:02

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)

Stas1985 25.01.2021 09:07

Так тоже не работает.

Stas1985 25.01.2021 14:19

Есть еще такой нюанс, при нажатии на карту добавляется якорь #gameos
этот код идет уже в самом окне
jQuery(function() {
	jQuery(document).on("click", function(event){
	     if(event.target.id == "devepmen-barselona") {
	       location.hash = '#gameos';
	       history.replaceState(null, null, null, '');
	     }
	        });
	});

Stas1985 26.01.2021 08:36

Подскажите пожалуйста, что еще можно предпринять в поиске и решении данной проблемы. Я понимаю что есть конфликт в коде но не могу понять где и как решить.

voraa 26.01.2021 09:02

console.log
Средства отладки браузера.

voraa 26.01.2021 09:13

Цитата:

Сообщение от Stas1985
.replaceState(null, null, null, '');

У replaceState три параметра
https://developer.mozilla.org/ru/doc...y/replaceState

Stas1985 26.01.2021 13:19

voraa, если вам не сложно, объясните пожалуйста по подробнее так как в js я не селен и разобраться самому очень сложно.

Stas1985 27.01.2021 11:55

Понять не могу, почему один и тот-же код в категории работает а в карточке товара нет
_https://lik-astana.kz/imidzhevaya-produktsiya/ordenskie-planki.html - категория
_https://lik-astana.kz/imidzhevaya-produktsiya/ordenskie-planki/ordenskaya-planka-detail.html - карточка товара

Stas1985 17.02.2021 07:09

Если отключаю этот код
<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
код убран у карты по центру.


Часовой пояс GMT +3, время: 20:11.