Не изменять ссылку в карточке товара при добавлении в корзину товара

259
10 февраля 2017, 03:04

Здравствуйте!

Имеется кусочек кода, который с каталога товаров при клике на кнопку "Добавить в корзину" конкретного товара - добавляет галочку этому товару, меняет текст на "Перейти в корзину", также соответственно меняет путь ссылки (переход в корзину), изменяет значение у ссылки data-show с 0 на цифру 1 и удаляет class="add-to-cart" у ссылки, чтобы не сработало e.preventDefault(); Проблема в том, что это же самое срабатывает и с карточки товара на 3-й клик по кнопке "Добавить в корзину" (1-й и 2-й клик работает нормально - идёт добавление товара в корзину). В карточке товара нет необходимости изменять путь ссылки, добавлять ссылке data-show="1" и удалять class="add-to-cart" у ссылки, чтобы не сработало e.preventDefault(); Код JS:

$(document).on('click', '.add-to-cart', function (e) {
     e.preventDefault();
     that = $(this),
        shows = parseInt(that.attr("data-show"),10),
        add = that.attr("data-text");      
        if(shows==0){
           that.closest('.catalog-tovarov').find('#mot3').show('slow');
           $(this).removeClass('add-to-cart');
           that.attr("data-show", "1");                  
           that.text(add);
           that.attr("href", "http://test.ru/korzina");              
        }
});

Код с каталога товаров:

<div class="catalog-tovarov">
   <div id="mot3" style="display: none;">
      <img src="images/check.png" />
   </div>
   <a class="add-to-cart" data-show="0" data-text="Перейти в корзину" href="http://test.ru/addtocart/6">Добавить в корзину</a>
</div>

Код с карточки товара:

<div class="product-kartochka">
   <a class="add-to-cart" href="http://test.ru/addtocart/6">Добавить в корзину</a>
</div>

Суть в том, что надо скорее всего как-то конкретно обратиться к ссылке только в каталоге товаров (возможно по id), а для ссылки в карточке товара изменять ни чего не надо. Надеюсь на Вашу помощь:)

Answer 1

Смотрим мой комментаррий, если это то что вам нужно то вот пробуем этот вариант

$(document).on('click', '.catalog-tovarov>.add-to-cart', function (e) {
 console.log(1);
});

и смотрим в консоль. То что вам нужно?

Answer 2

В else делаете все нужные манипуляции для кнопки которая находится в карточке товара

$(document).on('click', '.add-to-cart', function (e) {
 e.preventDefault();
 that = $(this),
    shows = parseInt(that.attr("data-show"),10),
    parent = that.closest('.catalog-tovarov'),
    add = that.attr("data-text");   
    if(shows==0  && parent.hasClass('catalog-tovarov')){
       parent.find('#mot3').show('slow');
       $(this).removeClass('add-to-cart');
       that.attr("data-show", "1");                  
       that.text(add);
       that.attr("href", "http://test.ru/korzina");              
    }
    else{
    }});
READ ALSO
Что выбрать - Swift или Java, или все вместе? [требует правки]

Что выбрать - Swift или Java, или все вместе? [требует правки]

Прошу дать советЯ начал проходить курс по Swift

579
Пытаюсь перевести код из Pascal в Java. Не получается. помогите пожалуйста [требует правки]

Пытаюсь перевести код из Pascal в Java. Не получается. помогите пожалуйста [требует правки]

Суть алгоритма в вычислении определенного интеграла квадратурным методом Гауссаg10c1,

266
Кастомизация switch button android

Кастомизация switch button android

Как сделать такую кнопку в Android?

282
POST запросы в Android. Как?

POST запросы в Android. Как?

Решил попробовать пописать под Android, соответственно появилось очень большое количество вопросовКому не трудно ответьте пожалуйста

970