Удаление товара из корзины
Добрый день
Есть проблема при удалении товара из корзины на сайте http://l1st.ru/ и она связана с темой дизайна.
Дело в следующем, стандартный скрипт удаления товара из корзины выглядит так:
<img style="width: 599px; height: 362.783px; float: right; margin: 0px 0px 10px 10px;" rel="width: 599px; height: 362.783px; float: right; margin: 0px 0px 10px 10px;" alt="" src="https://www.shop-script.ru/wa-data/public/hub/upload/images/2-6.jpg">
$(".cart a.delete").click(function () {
var tr = $(this).closest('tr');
$.post('delete/', {html: 1, id: tr.data('id')}, function (response) {
if (response.data.count == 0) {
location.reload();
}
tr.remove();
updateCart(response.data);
}, "json");
return false;
});
Это кусок из файла cart.js
По сути он удаляет строку с товаром и когда заказ оформляют на ПК или планшете, всё работает.
Но когда ширина экрана изменяется до размеров смартфона, то каждая строка разбивается на отдельную таблицу и имеет следующий вид:
<img style="width: 365px; height: 509.396px; float: left; margin: 0px 10px 10px 0px;" rel="width: 365px; height: 509.396px; float: left; margin: 0px 10px 10px 0px;" alt="" src="https://www.shop-script.ru/wa-data/public/hub/upload/images/1-13.jpg">
Соответственно в данном случае скрипт не работает и удаляется только строка "Удалить"Подскажите, есть ли какое-то решение, т.к. на странице /compare/ реализовано такое же изменение таблицы, но всё работает.
Там вот такой скрипт:
$(".compare-remove").on('click', function () {
var compare = $.cookie('shop_compare');
if (compare) {
compare = compare.split(',');
} else {
compare = [];
}
var i = $.inArray($(this).data('product') + '', compare);
if (i != -1) {
compare.splice(i, 1)
}
if (compare) {
$.cookie('shop_compare', compare.join(','), { expires: 30, path: '/'});
} else {
$.cookie('shop_compare', null);
}
});
2 ответа
Возможно, вам стоит переписать HTML-разметку корзины и использовать стандартную функцию удаления:
$(".cart a.delete").click(function () {
var row = $(this).closest('div.row');
$.post('delete/', {html: 1, id: row.data('id')}, function (response) {
if (response.data.count == 0) {
location.reload();
}
row.remove();
updateCart(response.data);
}, "json");
return false;
});
Ваш текущий вариант просто удаляет ближайшую строку, что не совсем правильно.
У меня аналогичная проблема. Стандартный скрипт cart.js не менял. Верстку шаблона cart.html оставил как было в теме default. Нажимаю на удаление из корзины, но не удаляется. Подскажите, может, кроме cart.js что-то еще должно быть? Спасибо