Как передать DOM элемент в коллбэк miniShop2
Всем привет, данный вопрос уже много раз мусолили в сообществе, но хорошего решения так я и не нашёл, поэтому делаю ещё одну попытку, может в этот раз всё прояснится, и так:
В miniShop2 есть система коллбеков, в которую можно добавлять свои, это безумно круто и спасибо в очередной раз автору за такую гибкость, но проблема в том что в эти коллбеки не передаётся DOM элемент, спровоцировавший событие и тут приходится велосипедить на js всякие не красивые штуки.
Суть вопроса вот в чём, в карточке товара есть две кнопки — в корзину и быстрая покупка, надо что бы первая вела себя как обычно, просто добавляла товар и уведомляла нас что он добавлен, а вторая добавляла товар и если он успешно добавлен, то перекидывала сразу в корзину, и вот если бы в коллбек miniShop2 — добавление товара в корзину — можно было бы передать ту кнопку, которая спровоцировала событие добавления и проверить в своей функции допустим по классу, то можно было бы реализовать просто: и быструю покупку и открытие в модальном окне и вообще всё что душа попросит)
Но сколько бы я не выводил в консоль всё что передаётся в коллбек, элемента спровоцировавшего событие я там не нашёл.
Ну и теперь суть вопроса — как передать в коллбек — добавление, да и в другие коллбеки miniShsop2 DOM элемент, который провацирует событие?
В miniShop2 есть система коллбеков, в которую можно добавлять свои, это безумно круто и спасибо в очередной раз автору за такую гибкость, но проблема в том что в эти коллбеки не передаётся DOM элемент, спровоцировавший событие и тут приходится велосипедить на js всякие не красивые штуки.
Суть вопроса вот в чём, в карточке товара есть две кнопки — в корзину и быстрая покупка, надо что бы первая вела себя как обычно, просто добавляла товар и уведомляла нас что он добавлен, а вторая добавляла товар и если он успешно добавлен, то перекидывала сразу в корзину, и вот если бы в коллбек miniShop2 — добавление товара в корзину — можно было бы передать ту кнопку, которая спровоцировала событие добавления и проверить в своей функции допустим по классу, то можно было бы реализовать просто: и быструю покупку и открытие в модальном окне и вообще всё что душа попросит)
Но сколько бы я не выводил в консоль всё что передаётся в коллбек, элемента спровоцировавшего событие я там не нашёл.
Ну и теперь суть вопроса — как передать в коллбек — добавление, да и в другие коллбеки miniShsop2 DOM элемент, который провацирует событие?
Комментарии: 2
Я всё таки откопал решение, в недрах постов сообщества)
Решение на удивление простое:
В свою функцию в коллбеке miniShop2 на самом деле передаёт элемент формы, с которой пришло событие, просто я не думал что искать его надо вот так)
Решение на удивление простое:
В свою функцию в коллбеке miniShop2 на самом деле передаёт элемент формы, с которой пришло событие, просто я не думал что искать его надо вот так)
var form = miniShop2.sendData.$form
Так что мой вопрос решился просто — второй форме, в которой лежит кнопка быстрой покупки, я дописал ещё один класс по мимо ms2_form — например fast_order и в своей функции проверилif(form.hasClass('fast_order')){
document.location = '/korzina';
}
Итоговое решение — просто у себя в js пишем
miniShop2.Callbacks.Cart.add.response.success = function() {
if(miniShop2.sendData.$form.hasClass('fast_order')){
document.location = '/korzina';
}
};
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.