Перейти к содержанию
mindthegap

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

Рекомендуемые сообщения

Здравствуйте, мне необходимо, если корзина становится пустой - присвоить ей класс 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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.