Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Есть скрипт который добавлет/ отнимает количество товара,
 

$("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(); не работает изменение количества товара. Но, если ее убрать то попап сам закрывается. Как исправить данную несовместимостЬ?

Ссылка на сообщение
Поделиться на другие сайты

$("body").on('click', ".btn-minus", function () {

Не понятно, при чем тут body? Почему просто не написать так? (тоже самое и для .btn-plus)

$(".btn-minus").click(function()..................
Изменено пользователем koteyka
Ссылка на сообщение
Поделиться на другие сайты

Во второй функции так же используется ("body"). Возможно из-за этого конфликт. А консоль что пишет?

А еще лучше дайте ссылку на страницу с конфликтом этих скриптов.

Изменено пользователем koteyka
Ссылка на сообщение
Поделиться на другие сайты

Во второй функции так же используется ("body"). Возможно из-за этого конфликт. А консоль что пишет?

А еще лучше дайте ссылку на страницу с конфликтом этих скриптов.

Все сейчас на локалке, нет возможности показать. 

 

 

 

Не понятно, при чем тут body? Почему просто не написать так? (тоже самое и для .btn-plus)

$(".btn-minus").click(function()..................

body для делегирования, так как корзина подгружается через AJAX.

 

Изменено пользователем AFI
Ссылка на сообщение
Поделиться на другие сайты

 

Не понятно, при чем тут 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) {

 

Хотя по хорошему там нужно логику менять...

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...