JQuery функция .on() работает только первый раз?

Ниже код, проблема в том что первый кусок кода работает а второй сразу за ним идущий не работает.
$('body').on('click','.cart-add',function(){alert('Добавить')})
$('body').on('click','.unset-element-cart',function(){alert('Удалить')})

Почему так происходит?
полный код
$('body').on('click','.cart-add',function(){
        var is       = $(this);
        var cart     = $('.cart-html');
        var cartlist = cart.find('.cart-list');

        if(is.hasClass('add-cart-add')){
            is.data('num',parseInt($('#num-count-tovar').val()));
        }

        if(is.hasClass('active')){return false;}
        is.addClass('active');

        $('.cart-icon').addClass('tada');


        $('#cart-count').text(parseInt($('#cart-count').text())+is.data('num'));
        $('#cart-main-count').text(parseInt($('#cart-main-count').text())+is.data('num'));
        $('#cart-sum').text(parseInt($('#cart-sum').text())+is.data('price'));

        cartlist.append('' +
            '<li class="parent">' +
            '   <div class="cart-block-img" style="background-image: url(/public/img/product/min/'+is.data('img')+')"></div>' +
            '   <div class="cart-block-info">' +
            '       <strong><a href="/tovar/'+is.data('id')+'">'+is.data('name')+'</a></strong>' +
            '       <span>Артикул: '+is.data('art')+'</span>' +
            '   </div>' +
            '   <div class="cart-block-count">' +
            '       <input class="count-cart-add" type="number" disabled name="price-cart" placeholder="1" value="1" min="1" max="100">' +
            '       <span class="cart-plus fa fa-caret-up"    data-price="'+is.data('price')+'" data-art="'+is.data('art')+'"></span>' +
            '       <span class="cart-minus fa fa-caret-down" data-price="'+is.data('price')+'" data-art="'+is.data('art')+'"></span>' +
            '   </div>' +
            '   <div class="cart-block-price">' +
            '       <strong class="element-cart-price">'+is.data('price')+' руб.</strong>' +
            '       <span>в наличии</span>' +
            '   </div>' +
            '   <div class="cart-block-unset">' +
            '       <i class="unset-element-cart" data-art="'+is.data('art')+'" data-num="'+is.data('num')+'" data-price="'+is.data('price')+'"></i>' +
            '   </div>' +
            '</li>');
        $.ajax({
            url: '/',
            data:{
                server: 'add-car',
                id    : is.data('id'),
                art   : is.data('art'),
                num   : is.data('num')
            },
            dataType: 'json',
            success: function (data){}
        }) 
        setTimeout(function(){
            $('.cart-icon').removeClass('tada');
        },600)
        event.stopPropagation();
        return false;

    });


Второй кусок кода который не работает
$('body').on('click','.unset-element-cart',function(){
        alert('Удалить')
    })
  • Вопрос задан
  • 3066 просмотров
Решения вопроса 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
1. Вот это знаете зачем?
event.stopPropagation();

2. Вот это зачем в обработчике?
return false;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы