Jump to content
Sign in to follow this  
mindthegap

[Решено] Присвоить класс корзине (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?

Share this post


Link to post
Share on other sites

Как удаляются товары (обратите внимание)?

Share this post


Link to post
Share on other sites

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

 

 

 

Всем привет. Вопрос такого плана, я добавил 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

Share this post


Link to post
Share on other sites

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

Большое спасибо, очень помогли. Жаль нельзя поднять репутацию на форуме.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.