$(".cart-fixed .wrap-cart").bind("click", function(evt) { evt.preventDefault(); $(".cart-dropdown").stop().slideToggle(); $(".cart-fixed").toggleClass("active"); }); /* - не нужен так как открываем через выпадающее меню Bootstrap 5 */ $(document).on('click', '.wrap-add-cart .count button', function(e){ e.preventDefault(); var elem = $(e.target).parent().parent().find('.input'); var currentQty = elem.val(); if( $(e.target).hasClass('btn-quantity-minus') && currentQty>1){ elem.val(parseInt(currentQty, 10) - 1); elem.trigger("change"); }else{ if( $(e.target).hasClass('btn-quantity-plus')){ elem.val(parseInt(currentQty, 10) + 1); elem.trigger("change"); } } }); $(document).on("click", '.cart-dropdown .wrap-items .item .count .button', function(e){ var elem = $(e.target).parent().find('.input'); var currentQty = elem.val(); if( $(e.target).hasClass('btn-quantity-minus') && currentQty>0){ elem.val(parseInt(currentQty, 10) - 1); elem.trigger("change"); elem.parent().parent().parent().find(".price").trigger("change"); }else{ if( $(e.target).hasClass('btn-quantity-plus')){ elem.val(parseInt(currentQty, 10) + 1); elem.trigger("change"); elem.parent().parent().parent().find(".price").trigger("change"); } } }); $(document).mouseup(function (e) { var popup = $('.cart-fixed .wrap-cart, .cart-fixed'); if (e.target!=popup[0]&&popup.has(e.target).length === 0){ $('.cart-dropdown').hide(); } }); /* - не нужен так как открываем через выпадающее меню Bootstrap 5 */ $(".menu-item").each(function() { var ths = $(this); var new_price = parseInt(ths.find(".new-price span").text(), 10); var old_price = parseInt(ths.find(".old-price span").text(), 10); var skudka = Math.round(100 - (new_price * 100 / old_price)); ths.find(".wrap-img>span.sale b, .wrap-img>span.sale strong").text(skudka); }); /*код для инициализации карты Яндекс*/ function init(){ var myMap = new ymaps.Map("map", { center: [55.03664973144343,82.91664058465575], zoom: 16 }); var myPlacemark = new ymaps.Placemark([55.03664973144343,82.91664058465575], { hintContent: 'Содержимое всплывающей подсказки', balloonContent: 'Содержимое балуна' }); myMap.geoObjects.add(myPlacemark); } /*код для инициализации карты Яндекс*/ из scripts.min.js есть повторы /*работает при добавлении товара со страницы товаров (категории товаров)*/ $(document).on('click', '.wrap-add-cart .count button', function(e){ e.preventDefault(); var elem = $(e.target).parent().parent().find('.input'); var currentQty = elem.val(); if( $(e.target).hasClass('btn-quantity-minus') && currentQty>1){ /*если количество товара 1 то не меняем, иначе товар удалится из корзины. Пользователь может по ошибке несколько раз нажимать и тогда при 0 нуде товар удалится из корзины*/ elem.val(parseInt(currentQty, 10) - 1); elem.trigger("change"); }else{ if( $(e.target).hasClass('btn-quantity-plus')){ elem.val(parseInt(currentQty, 10) + 1); elem.trigger("change"); } } }); /*для выпадающей корзины*/ $(document).on("click", '.cart-dropdown .wrap-items .item .count .button', function(e){ var elem = $(e.target).parent().find('.input'); var currentQty = elem.val(); if( $(e.target).hasClass('btn-quantity-minus') && currentQty>1){ /*если количество товара 1 то не меняем, иначе товар удалится из корзины. Пользователь может по ошибке несколько раз нажимать и тогда при 0 нуде товар удалится из корзины*/ elem.val(parseInt(currentQty, 10) - 1); elem.trigger("change"); elem.parent().parent().parent().find(".price").trigger("change"); }else{ if( $(e.target).hasClass('btn-quantity-plus')){ elem.val(parseInt(currentQty, 10) + 1); elem.trigger("change"); elem.parent().parent().parent().find(".price").trigger("change"); /*не понятно почему таким кодом*/ } } }); /*для страницы заказов*/ $(document).on("click", '.Order__BasketBody .item .count .button', function(e){ var elem = $(e.target).parent().find('.js-cartProductCount__input'); /*input элемент с классом js-cartProductCount__input в котором храним количество товара в корзине*/ var elemlabel = $(e.target).parent().find('.js-delivery__basket--row__q-text'); /*отображаемое количество товара в корзине: элемент с классом js-delivery__basket--row__q-text*/ var elemtotalcost = $(e.target).parent().parent().parent().parent().find('.js-delivery__basket--row__price-total-value'); /*элемент общей стоимости товара с классом js-delivery__basket--row__price-total-value*/ var elemprice = $(e.target).parent().parent().parent().find('.js-delivery__basket--row__price-normal-value');/*цена за шт. товара*/ var elembtnminus = $(e.target).parent().find('.btn-quantity-minus');/*если товваров остается 1 то дальше блокируем кнопку уменьшения, иначе товар удалится*/ /* console.log("elembtnminus: "); console.log(elembtnminus); console.log ("elemlabel :"); console.log(elemlabel); console.log("Начало событий e.target :"); console.log(e.target); console.log ("elem :"); console.log(elem); */ var currentQty = elem.val(); /* console.log ("elem.val() :"); console.log(elem.val()); console.log ("currentQty :"); console.log(currentQty); console.log("условие $(e.target).hasClass('btn-quantity-minus')"); console.log($(e.target).hasClass('btn-quantity-minus') && currentQty>0); */ if($(e.target).hasClass('btn-quantity-minus') && currentQty>1){ /*если количество товара 1 то не меняем, иначе товар удалится из корзины. Пользователь может по ошибке несколько раз нажимать и тогда при 0 нуде товар удалится из корзины*/ elem.val(parseInt(currentQty, 10) - 1); /* console.log("elem.val: "); console.log(elem.val); */ elemlabel[0].innerHTML=parseInt(currentQty, 10) - 1; elemtotalcost[0].innerHTML = parseInt(elemprice[0].innerHTML, 10) * (parseInt(currentQty, 10)-1) if(elem.val() ==1){ $(elembtnminus).attr('disabled',true); }; elem.trigger("change"); $(elembtnminus).attr('disabled',true); setTimeout(skidkasamovivozspan, 1000);/*обновляем скидку за самовывоз*/ setTimeout ($(elembtnminus).attr('disabled',false), 3000); /* elemlabel.trigger("change");*/ /* console.log ("Уменьшаем elemlabel отображаемое количество товара в корзине: элемент с классом js-delivery__basket--row__q-text"); console.log(elemlabel[0].innerHTML); console.log("Сам элемент elemlabel"); console.log(elemlabel); console.log ("Уменьшаем elem (input элемент с классом cartProductCount__input в котором храним количество товара в корзине):"); console.log(elem); */ }else{ if( $(e.target).hasClass('btn-quantity-plus')){ elem.val(parseInt(currentQty, 10) + 1); /* console.log("elem.val: "); console.log(elem.val); */ elemlabel[0].innerHTML=parseInt(currentQty, 10) + 1; elemtotalcost[0].innerHTML = parseInt(elemprice[0].innerHTML, 10) * (parseInt(currentQty, 10)+1) if(elem.val() >1){ $(elembtnminus).attr('disabled',false); }; elem.trigger("change"); $(elembtnminus).attr('disabled',true); setTimeout(skidkasamovivozspan, 1000);/*обновляем скидку за самовывоз*/ setTimeout ($(elembtnminus).attr('disabled',false), 3000); /*elemlabel.trigger("change");*/ /* console.log ("Прибавляем к elemlabel отображаемое количество товара в корзине: элемент с классом js-delivery__basket--row__q-text"); console.log(elemlabel[0].innerHTML); console.log("Сам элемент elemlabel"); console.log(elemlabel); console.log ("Прибавляем к elem (input элемент с классом cartProductCount__input в котором храним количество товара в корзине):"); console.log(elem); */ } } }); function skidkasamovivozspan() { $('#skidkasamovivozspan')[0].innerHTML = -parseFloat((parseFloat($('.ms2_total_cost')[0].innerHTML,10)-(parseFloat($('.ms2_total_cost')[0].innerHTML,10)*(100+parseFloat($('#order_delivery_price')[0].value,10)))/100),10).toFixed(2); //$('#skidkasamovivozspan')[0].innerHTML = (Math.trunc(parseInt($('.ms2_total_cost')[0].innerHTML,10)*100 - parseInt($('#ms2_order_cost')[0].innerHTML,10)*100))/100; //($order.cost/(100+$deliveries[1].price)*$deliveries[1].price)} } $(document).mouseup(function (e) { var popup = $('.cart-fixed .wrap-cart, .cart-fixed'); if (e.target!=popup[0]&&popup.has(e.target).length === 0){ $('.cart-dropdown').hide(); } }); $(".menu-item").each(function() { var ths = $(this); var new_price = parseInt(ths.find(".new-price span").text(), 10); var old_price = parseInt(ths.find(".old-price span").text(), 10); var skudka = Math.round(100 - (new_price * 100 / old_price)); ths.find(".wrap-img>span.sale b, .wrap-img>span.sale strong").text(skudka); }); var dataSession; $(".filter-category li a").click(function(){ var number = $("#menu").outerHeight(); sessionStorage.setItem("category", number); }); dataSession = sessionStorage.getItem('category'); if (dataSession > 0) { $("html, body").stop().animate({ scrollTop: $("#menu").offset().top }, 500); } sessionStorage.removeItem('category'); $(document).on("click", ".mfp-popup-order .tab_form .payments-select", function(e) { ths = $(e.target); ths.toggleClass("active"); ths.parent().find(".wrap-dropdown-payments").slideToggle(0); }); $(document).on("click", ".wrap-dropdown-payments .payment", function(e) { ths = $(e.target); textInput = ths.parent().text(); ths.parent().parent().parent().find(".payments-select").toggleClass("active").find("span").text(textInput); ths.parent().parent().parent().find(".wrap-dropdown-payments").hide(); }); $(document).on("click", ".load-more", function() { setTimeout(function() { $(".menu-item .h3").height("auto").equalHeights(); $(".menu-item>p").height("auto").equalHeights(); $(".menu-item").height("auto").equalHeights(); }, 1000); }); function heightses() { if ($(window).width() > 768) { $(".menu-item .h3").height("auto").equalHeights(); $(".menu-item>p").height("auto").equalHeights(); $(".menu-item").height("auto").equalHeights(); } } heightses(); $(window).resize(function() { heightses(); }); }); смотри также код отработки цели BRON вставить в нужные места коды типа ym(49192579,'reachGoal','BRON'); function blockzakaz1() { console.log("блокируем кнопку заказа т.к. адрес надо заново ввести чтобы правильно посчиталась доставка"); $(mscDistance.Order.mscDistanceDeliveryDistance)[0].value = ""; /*сбрасываем расчетную длину доставки*/ $(mscDistance.Order.mscDistanceDeliveryToCoords)[0].value = ""; /*сбрасываем конечный пункт доставки*/ $(mscDistance.Order.mscDistanceDeliveryCost)[0].innerHTML = "?";/*сбрасываем расчетную стоимость доставки*/ $('#ms2_order_cost')[0].innerHTML = "Повторно укажите адрес доставки - при вводе выберите правильный адрес из выпадающего списка."; //$(mscDistance.Order.submit.disabled()); /*метод default.js для отключения кнопки заказа если адрес не выбран правильно - кнопка активируется после выбора адреса из выпадающего списка*/ $(':button[type=submit], a[type=submit]', mscDistance.Order.order).attr('disabled', true).prop('disabled', true); //console.log("f444"); }; $(document).on('click','#delivery_tab_2',function(e){ console.log("f777"); if($('#flag_delivery_to_point_was_changed_but_delivery_cost_not_changed')[0].value == 1){ setTimeout(blockzakaz1, 500); $(mscDistance.Order.mscDistanceDeliveryToPoint)[0].value = ""; $('#flag_delivery_to_point_was_changed_but_delivery_cost_not_changed')[0].value = 0; console.log("f888"); } /* console.log("#delivery_tab_2 click"); //checkedactivate; console.log("f555"); */ }); /*$(document).on('click','#delivery_tab_1',function(e){ console.log("#delivery_tab_1 click"); //checkedactivate; console.log("f666"); }); */ $(function() { if ($('.DeliverySelect .wrapper-tabs .tabs .checkbox label input').is(':checked')) { $(".DeliverySelect .wrapper-tabs .tabs .checkbox label input:checked").parent().parent().addClass("active"); console.log(".... input:checked -> .parent ->.parent addClass 'active'"); }; $(".DeliverySelect .wrapper-tabs .tab").click(function() { console.log("t111188"); $(".DeliverySelect .wrapper-tabs .tab").removeClass("active").eq($(this).index()).addClass("active"); /* if ($('.DeliverySelect .wrapper-tabs .tab #delivery_tab_1').prop("checked")) { //$(".payments-full").hide(); console.log("t123213"); } else { //$(".payments-full").show(); console.log("t45343"); }*/ }); console.log("t488888"); }); /*If($('#flag_delivery_to_point_was_changed_but_delivery_cost_not_changed')[0].value == 1){ $(function() { if ($('.mfp-popup-order .wrapper-tabs .tabs .checkbox label input').is(':checked')) { $(".mfp-popup-order .wrapper-tabs .tabs .checkbox label input:checked").parent().parent().addClass("active"); } $(".mfp-popup-order .wrapper-tabs .tab").click(function() { $(".mfp-popup-order .wrapper-tabs .tab").removeClass("active").eq($(this).index()).addClass("active"); if ($('.mfp-popup-order .wrapper-tabs .tab #delivery_1').prop("checked")) { $(".payments-full").hide(); } else { $(".payments-full").show(); } }); }); };*/ var tekznachenieadresapostavki=""; $(document).on('click','#mscdistance_delivery_to_point',function(e){ console.log(!$(e.target).val()); if (!$(e.target).val()) { tekznachenieadresapostavki=$(e.target).val(); console.log("текущее значение адреса доставки в момент клика на элемент" + tekznachenieadresapostavki.value); } }); $(document).on('change keydown','#mscdistance_delivery_to_point',function(e){ $(e.target).parent().addClass('MaterialInput--notEmpty'); /*иногда сохраняется старый результат расчета расстояния -- чтобы он устанавливался только после клика по выпадающим адресам. Также нужно чтобы сбрасывалась стоимость доставки, чтобы она не попала в заказ после ручного ввода и не кликнкутом адресе из списка (т.е. длина mscDistanceDeliveryDistance осталась 0) иначе неправильная стоимость от предыдущего выбора адреса останется. И соответственно после сброса расстояния и цены доставки делаем невозможной отправку заказа до тез пор пока не будет выбран правильно адрес. */ if($(e.target) !== tekznachenieadresapostavki){ console.log("не совпал"); $(mscDistance.Order.mscDistanceDeliveryDistance)[0].value = ""; /*сбрасываем расчетную длину доставки*/ $(mscDistance.Order.mscDistanceDeliveryToCoords)[0].innerHTML = ""; /*сбрасываем конечный пункт доставки*/ $(mscDistance.Order.mscDistanceDeliveryCost)[0].innerHTML = "?";/*сбрасываем расчетную стоимость доставки*/ $('#flag_delivery_to_point_was_changed_but_delivery_cost_not_changed')[0].value = 1; /*ставим флаг flag_delivery_to_point_was_changed_but_delivery_cost_not_changed в 1, сохраняем признак что надо блокировать отправку заказа т.к. надо перевыбрать адрес доставки*/ $('#ms2_order_cost')[0].innerHTML = "Повторно укажите адрес доставки - при вводе выберите правильный адрес из выпадающего списка."; //$('.mscdistance-error-flag').removeClass('mscdistance-error'); /*$('#ms2_order_cost')[0].innerHTML = "Уточните адрес доставки! Выберите адрес доставки из выпадающего списка!";*/ $(':button[type=submit], a[type=submit]', mscDistance.Order.order).attr('disabled', true).prop('disabled', true); }else{ console.log("совпал"); }; /**/ //console.log("mscdistance_delivery_to_point изменен, значение mscDistance.Order.mscDistanceDeliveryDistance установили в " + $(e.target).val()); //console.log($(mscDistance.Order.mscDistanceDeliveryToPoint)[0].value); // console.log("mscdistance_delivery_distance= " + $(mscDistance.Order.mscDistanceDeliveryDistance)[0].value); /*проверку логики если улица не совпадает*/ if($(e.target).val()!=""){ $(e.target).parent().addClass('MaterialInput--notEmpty'); /*console.log("22 поле не было пустым потому добавили класс MaterialInput--notEmpty");*/ // console.log("mscdistance_delivery_distance= " + $(mscDistance.Order.mscDistanceDeliveryDistance)[0].value); }else{ $(e.target).parent().removeClass('MaterialInput--notEmpty'); // console.log("666 поле стало пустым, класс MaterialInput--notEmpty удалили"); } //console.log("mscdistance_delivery_distance= " + $(mscDistance.Order.mscDistanceDeliveryDistance)[0].value); }); $(document).on('blur','#mscdistance_delivery_to_point',function(e){ //console.log("5 потеря фокуса АДРЕСА ДОСТАВКИ"); // console.log("mscdistance_delivery_distance= " + $(mscDistance.Order.mscDistanceDeliveryDistance)[0].value); /*mscdistance_delivery_distance*/ if($(e.target).val()===""){ $(e.target).parent().removeClass('MaterialInput--notEmpty'); // console.log("55 так как поле пустое удалили класс MaterialInput--notEmpty"); $(mscDistance.Order.mscDistanceDeliveryDistance)[0].value =""; $(mscDistance.Order.mscDistanceDeliveryToCoords)[0].value = ""; /*сбрасываем конечный пункт доставки*/ // console.log("mscdistance_delivery_distance= " + $(mscDistance.Order.mscDistanceDeliveryDistance)[0].value); mscDistance.initialize; } }); /* if(elem.val() ==1){ $(elembtnminus).attr('disabled',true); }; elem.trigger("change"); // Обработчик отправки формы $('form').submit(function(){ // Если textarea пустое if(!$(this).find('textarea').val()){ // отменяем отправку return false; } }); */ /*для красоты полей формы заказа*/ $(document).on('focus','.MaterialInput__control',function(e){ $(e.target).parent().addClass('MaterialInput--notEmpty'); /*console.log("был фокус, добавили класс MaterialInput--notEmpty:");*/ /*console.log($(e.target));*/ }); $(document).on('change keydown','.MaterialInput__control',function(e){ /*console.log("2 change keydown ");*/ if($(e.target).val()!=""){ $(e.target).parent().addClass('MaterialInput--notEmpty'); /*console.log("22 поле не было пустым потому добавили класс MaterialInput--notEmpty");*/ }else{ $(e.target).parent().removeClass('MaterialInput--notEmpty'); /*console.log("222 поле стало пустым, класс MaterialInput--notEmpty удалили");*/ } }); $(document).on('blur','.MaterialInput__control',function(e){ /*console.log("3 потеря фокуса");*/ if($(e.target).val()==""){ $(e.target).parent().removeClass('MaterialInput--notEmpty'); /*console.log("33 так как поле пустое удалили класс MaterialInput--notEmpty");*/ } });