РЕШЕНО Отключить jgrowl при добавлении в корзину
Отключить jgrowl при добавлении товара в корзину. Через
miniShop2.Callbacks.Cart.add.response.success = function() {
$.fancybox('#modal_basket');
}
Вызываю модальное око, но параллельно выскакивает окошко уведомления. Как его отключить, только для добавления? Буду благодарен за любой тычок носом. Спасибо! Комментарии: 11
Самое простое — скрыть через CSS, примерно
#jGrowl {display:none}
Отключит все уведомления!
assets/components/minishop2/js/web/default.js — сделать копию файла и указать в системных настройках путь до нового файла, в котором произвести замену/удаление вызова jgrowl'a
так не понятно, где именно в этом фале отключить вызов, именно для добавления в корзину. Для всех уведомлений остальных оставить!
Предположу, что где-то среди данных колбэков или в завязанных в этой области функциях:
,add: function() {
var callbacks = miniShop2.Cart.callbacks;
callbacks.add.response.success = function(response) {
this.Cart.status(response.data);
}
miniShop2.send(miniShop2.sendData.formData, miniShop2.Cart.callbacks.add, miniShop2.Callbacks.Cart.add);
}
Пока сделал так, понимаю что не красиво…
miniShop2.Callbacks.Cart.add.response.success = function() {
$.fancybox('#modal_basket');
$("#jGrowl").css("display","none");
setTimeout (function(){
$("#jGrowl").css("display","block");
}, 5000);
Но пока другого решения не нашел!
ну и нормально, работает же :)
Мм… а если будет добавлено 2 товара за промежуток времени менее 5 секунд, не произойдет ли следующий сценарий:
— первый клик (картинка прячется), запускается таймер отчета вышеописанной функции и времени до скрытия jgrowl
— второй клик (на картинку опять навешивается display: none;), снова запускается 2 таймера
— первый таймер проходит и jgrowl становится видимым, но т.к. таймер jgrowl до скрытия увеличен, jgrowl еще отображается и резко проявляется юзеру.
?
— первый клик (картинка прячется), запускается таймер отчета вышеописанной функции и времени до скрытия jgrowl
— второй клик (на картинку опять навешивается display: none;), снова запускается 2 таймера
— первый таймер проходит и jgrowl становится видимым, но т.к. таймер jgrowl до скрытия увеличен, jgrowl еще отображается и резко проявляется юзеру.
?
да хватает вроде ) если не усердствовать )))
github.com/bezumkin/miniShop2/blob/186b18504214f0afde06343d9e9036c3505cf6a1/assets/components/minishop2/js/web/default.js#L128
Здесь делаете проверку, какое действие происходит.
Например так
Здесь делаете проверку, какое действие происходит.
Например так
var skip = 0;
for (var i=0; i < data.length; i++) {
if (data[i].name == 'ms2_action' && data[i].value == 'cart/add') {
skip = 1;
}
}
if (!skip) {
miniShop2.Message.success(response.message);
}
О спасибо так работает!!!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.