0

我有这个小脚本。我需要在我的购物篮中添加和删除元素。所以我有一个简单的计数器,但它不能正常工作。当我解析实际数字并添加另一个数字时,一切都很好,但是 - 我不能添加另一个数字,当我减去它时,它会给我带来一个零。你能帮助我吗?我的代码和一些小提琴http://jsfiddle.net/5vuJQ/

$(function(products_counter){
    var n = parseInt($('.lce_number').text());
    var n_place = $('.lce_number');
    $('.lce_add').live('click', function(){
        n_place.empty().append(n + 1);
    });
    $('.lce_remove').live('click', function(){
        n_place.empty().append(n - 1);
    });
});
4

6 回答 6

4

.lce_number您必须从每次点击中提取号码。请注意,live()方法已被弃用,您应该on()改用。

var n_place = $('.lce_number');
$('.line_count_elements').on('click', '.lce_add', function() {
    var n = parseInt(n_place.text(), 10);
    n_place.html(n + 1);
});
$('.line_count_elements').on('click', '.lce_remove', function() {
    var n = parseInt(n_place.text(), 10);
    n_place.html(Math.max(0, n - 1));
});​

演示:http: //jsfiddle.net/5vuJQ/7/

于 2012-11-13T11:34:20.517 回答
1

你可以试试这个:

http://jsfiddle.net/5vuJQ/8/

$(function(products_counter){
        var n = parseInt($('.lce_number').text());
        var n_place = $('.lce_number');
        $('.lce_add').on('click', function(){
            n_place.empty().append(++n);
        });
        $('.lce_remove').on('click', function(){
            if(n>0)
              n_place.empty().append(--n);
        });
    });​
于 2012-11-13T11:35:52.903 回答
1
$(function(products_counter){
    var n = parseInt($('.lce_number').text());
    $('.lce_add').live('click', function(){
       $('.lce_number').text(parseInt($('.lce_number').text())+1);
    });
    $('.lce_remove').live('click', function(){
         $('.lce_number').text(parseInt($('.lce_number').text())-1);
    });
});

演示在这里:http: //jsfiddle.net/Zzbet/

于 2012-11-13T11:36:25.680 回答
0
$(function(products_counter){
    var n_place = $('.lce_number');
    $('.lce_add').live('click', function(){
        var n = parseInt($('.lce_number').text());
        n_place.empty().append(n + 1);
    });
    $('.lce_remove').live('click', function(){
        var n = parseInt($('.lce_number').text())
        n_place.empty().append(n - 1);
    });
});
于 2012-11-13T11:35:27.240 回答
0
$(function(products_counter){      
    var n_place = $('.lce_number');
    $('.lce_add').live('click', function(){
        var n = parseInt($('.lce_number').text());
        n_place.empty().append(n + 1);
    });
    $('.lce_remove').live('click', function(){
        var n = parseInt($('.lce_number').text());
        n_place.empty().append(n - 1);
    });
});

您需要n在每次点击后获取 的值!

于 2012-11-13T11:36:12.980 回答
0
$('.lce_add').live('click', function(){
        n_place.empty().append(n + 1);
    });

代码中的上述行没有修改“ n ”的值

首先 - n = 1
在第一次单击时- append(n + 1) --> 1+ 1 ---> 显示 2
n仍然是 1
在第二次单击时- append(n + 1) --> 1 + 1 --> 再次导致 2
n仍然是 1,因此重复

您需要在调用 append()之前修改 ' n '的值

 $('.lce_add').live('click', function(){
        n = n + 1;
        n_place.empty().append(n);
    });

http://jsfiddle.net/5tbqX/1/

于 2012-11-13T11:39:14.853 回答