Не работает изменение количества в ajax корзине
При загрузке корзины minishop2 4.1.5-pl с ванильными скриптами, через AjaxSnippet или quickview, не работает изменение количества ±.
Т.е скрипт не отрабатывает на появившихся после загрузки страницы элементах. Подскажите, как исправить?
Т.е скрипт не отрабатывает на появившихся после загрузки страницы элементах. Подскажите, как исправить?
Комментарии: 16
На событие открытия модального окна надо запускать вот такой код
modal.querySelectorAll('input[name=count]')?.forEach(el => {
new CustomInputNumber(el, {});
});
modal — это узел DOM внутри которого находится форма с товаром.
в консоль пишет ошибку
index.html:243 Uncaught ReferenceError: CustomInputNumber is not defined
все скрипты подключены
А вы импортировали класс CustomInputNumber?
Мб не совсем корректно понимаю вопрос, но mscart.class.js начинается с
import CustomInputNumber from './custominputnumber.class.js'
На этой же странице, где вызываю через ajax modal с корзиной, в качестве эксперимента есть еще одна корзина, которая загружается изначально вместе со страницей. В ней все работает.
Всё правильно, но импорт происходит в класс корзины, ваш скрипт-то не знает о том, где лежит CustomInputNumber и что это за зверь, глобально-то он не определен.
Так, пытаюсь разобраться: мой скрипт расположен на странице (не отдельным файлом, а в html) где прописано подключение к
И мой скрипт его не видит, а что нужно сделать что бы увидел?
<script src="/assets/components/minishop2/js/web/vanilajs/modules/mscart.class.js"></script>
в котором первой строчкой импортируется класс CustomInputNumberИ мой скрипт его не видит, а что нужно сделать что бы увидел?
Не вникал конкретно в вашу ситуацию, но раз вы используете импорты, то необходимо добаввлять атрибут type=«module» у тега script.
Консоль в браузере обязательно должна была вам об этом сообщить.
Консоль в браузере обязательно должна была вам об этом сообщить.
Принудительно добавляю на страницу custominputnumber.class.js с атрибутом type=«module»
<script type="module">
import CustomInputNumber from './assets/components/minishop2/js/web/vanilajs/modules/custominputnumber.class.js';
modal.querySelectorAll('input[name=count]')?.forEach(el => {
new CustomInputNumber(el, {});
});
</script>
Примерно так, я мог с путями ошибиться.
Заработали кнопки +-, однако количество товара в корзине от их нажатия не меняется, меняется количество в count, но в корзине все по прежнему и уведомлений нет.
а MsCart так же не надо подключать?
Да.
Вы корзину выводите в модалке?
Да, но там div в который после открытия модального окна через AjaxSnippet загружается корзина начиная с div id=«msCart», каждое открытие это новый запрос в корзину
Ну тогда надо каждый раз заново инициализировать корзину.
беда
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.