AFI Опубликовано 22 ноября, 2016 Жалоба Поделиться Опубликовано 22 ноября, 2016 Есть скрипт который добавлет/ отнимает количество товара, $("body").on('click', ".btn-minus", function () { var p = $(this).parent(), i = p.find("input.amount"), s = i.val(), v = parseInt(i.val()) - 1; if(v >= 1) { i.val(v); p.find('.quantity__count').text(v); } else { var v = 1; i.val(v); p.find('.quantity__count').text(v); } }); $("body").on('click',".btn-plus", function () { var p = $(this).parent(), i = p.find("input.amount"), s = i.val(), v = parseInt(i.val()) + 1; if(v <= 10) { i.val(v); p.find('.quantity__count').text(v); } else { var v = 10; i.val(v); p.find('.quantity__count').text(v); } }); И есть скрипт отвечающий за всплытие popup. $(function() { $("#popup-cart-active").on("change", function() { if ($(this).is(":checked")) { $("body").addClass("popup--open"); } else { $("body").removeClass("popup--open"); } }); $(".popup__fade-screen, .popup__close").on("click", function() { $(".popup__state:checked").prop("checked", false).change(); }); $(".popup__inner").on("click", function(e) { e.stopPropagation(); }); }); Из за этой части e.stopPropagation(); не работает изменение количества товара. Но, если ее убрать то попап сам закрывается. Как исправить данную несовместимостЬ? Цитата Ссылка на сообщение Поделиться на другие сайты
koteyka Опубликовано 22 ноября, 2016 Жалоба Поделиться Опубликовано 22 ноября, 2016 (изменено) $("body").on('click', ".btn-minus", function () {Не понятно, при чем тут body? Почему просто не написать так? (тоже самое и для .btn-plus) $(".btn-minus").click(function().................. Изменено 22 ноября, 2016 пользователем koteyka Цитата Ссылка на сообщение Поделиться на другие сайты
koteyka Опубликовано 22 ноября, 2016 Жалоба Поделиться Опубликовано 22 ноября, 2016 (изменено) Во второй функции так же используется ("body"). Возможно из-за этого конфликт. А консоль что пишет?А еще лучше дайте ссылку на страницу с конфликтом этих скриптов. Изменено 22 ноября, 2016 пользователем koteyka Цитата Ссылка на сообщение Поделиться на другие сайты
AFI Опубликовано 22 ноября, 2016 Автор Жалоба Поделиться Опубликовано 22 ноября, 2016 (изменено) Во второй функции так же используется ("body"). Возможно из-за этого конфликт. А консоль что пишет?А еще лучше дайте ссылку на страницу с конфликтом этих скриптов.Все сейчас на локалке, нет возможности показать. Не понятно, при чем тут body? Почему просто не написать так? (тоже самое и для .btn-plus) $(".btn-minus").click(function().................. body для делегирования, так как корзина подгружается через AJAX. Изменено 22 ноября, 2016 пользователем AFI Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 22 ноября, 2016 Жалоба Поделиться Опубликовано 22 ноября, 2016 Не понятно, при чем тут body? Почему просто не написать так? (тоже самое и для .btn-plus) $(".btn-minus").click(function().................. использование body это равноценно бывшему методу live.Правильней было бы более конкретно задавать область, а не всю страницу ТС попробуйте замените: $(".popup__inner").on("click", function(e) { на: $('.popup__inner').on('click', '*:not(.btn-minus,.btn-plus)', function(e) { Хотя по хорошему там нужно логику менять... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.