Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Присвоить класс корзине (jquery)


Recommended Posts

Здравствуйте, мне необходимо, если корзина становится пустой - присвоить ей класс empty. На php это реализовал, а вот на jquery - не получается. Пробовал отслеживать текст "Товаров: 0 (0 р.)", получилось примерно так:

    if ($('#cart-total:contains("Товаров: 0 (0 р.)")').length > 0) {
    $("#cart").addClass("empty");
}

Все работает, но только после перезагрузки. Когда же удаляешь товары - класс не меняется. Пробовал отслеживать изменения в реальном времени, тоже ничего:

$('#cart-total').bind("DOMSubtreeModified",function(){
    if ($('#cart-total:contains("Товаров: 0 (0 р.)")').length > 0) {
    $("#cart-icn").addClass("empty");
}
});

Как сделать так, если человек удалил все товары из корзины и она стала пустой, то ей присваивался класс empty через jquery?

Надіслати
Поділитися на інших сайтах


Была похожая задача:

 

 

 

Всем привет. Вопрос такого плана, я добавил class="active" к id="cart" когда товар попадает в корзину.
Вот так $('#cart').addClass('active');
Все норм, только при перезагрузке страницы класс исчезает. Вопрос как оставить класс на месте даже после перезагрузки страниц?

 

А вот мой ответ:

 

В файле catalog\view\theme\default\template\module\cart.tpl
Заменить первую строку на

<div id="cart" <?php if (!empty($products)) {echo "class=\"active\""; } ?>> 

либо на

<div id="cart" <?php print (!empty($products)) ? 'class="active"': ''; ?>> 

Вам еще нужно будет разобраться с проблемой удаления из корзины товара. т.е. когда пользователь удаляет последний товар из корзины, то класс active должен удаляться. Если я правильно понял. Для решения замените в том же файле

<td class="remove">
  <img src="catalog/view/theme/default/image/remove-small.png"
  alt="<?php echo $button_remove; ?>"
  title="<?php echo $button_remove; ?>"
  onclick="(getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') ? location = 'index.php?route=checkout/cart&remove=<?php echo $product['key']; ?>' : $('#cart').load('index.php?route=module/cart&remove=<?php echo $product['key']; ?>' + ' #cart > *');" />
</td> 

на

<td class="remove">
  <img src="catalog/view/theme/default/image/remove-small.png"
  alt="<?php echo $button_remove; ?>"
  title="<?php echo $button_remove; ?>"
  onclick="(getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') ? location = 'index.php?route=checkout/cart&remove=<?php echo $product['key']; ?>' : $('#cart').load('index.php?route=module/cart&remove=<?php echo $product['key']; ?>' + ' #cart > *'); <?php if (count($products) == 1){ echo "$('#cart').removeClass('active');";} ?>" />
</td> 

,то есть в конце onClick нужно добавить код

<?php if (count($products) == 1){ echo "$('#cart').removeClass('active');";} ?> 

который проверяет последний это товар в корзине или нет. Если да, тогда удаляет класс active.

  • +1 1
Надіслати
Поділитися на інших сайтах

Гість
Ця тема закрита для публікації повідомлень.
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.