使用jquery添加和删除项目时放置计数器递增和递减

时间:2010-03-10 09:14:06

标签: php jquery

请找到以下代码

<script type="text/javascript">
    $(function(){
    var c=1;
        $("#i1").toggle(function(){
            $("#e1").appendTo("#i2");
            $('#counter').attr('value',c);

        },
        function(){
            $("#e1").appendTo($(this));
           $('#counter').attr('value',c);
        });
    c++; 
    });
    </script>
    <div id=i1><span id="e1">Item 1</span></div>
    <div id=i2><span id="e2">Item 2</span></div>

    <input type=text value='' id=counter>

当放置计数器时,它会递增和递减,但每次单击add时值会增加+2,并且在删除时会增加-1。

究竟出了什么问题

由于 让

1 个答案:

答案 0 :(得分:0)

我真的不了解您的代码。 是否缺少部件?

但我认为这是因为,当document.ready运行时, c ++ 只会被调用一次。 并且 1 + 1 = 2 ,因此 c 将始终 2

所以也许这就是为什么它总是以2递增。

但我认为

 $('#counter').attr('value',c);
调用

,它将始终为2 ...而不是添加2。

如果我使用计数器附加项目,则使用隐藏字段,并执行以下操作:

$("#i1").toggle(function(){
    var c= $("#counter").val();
    c++;
    $("#counter").val(c);
    $("#e1").appendTo("#i2");
    $('#counter').attr('value',c);
},
function(){
    var c= $("#counter").val();
    c++;
    $("#counter").val(c);
    $("#e1").appendTo($(this));
    $('#counter').attr('value',c);
});

我希望这很有用。