Jquery只增加了两个

时间:2013-03-28 03:31:55

标签: jquery

每次点击一个按钮并且id存在时,我试图让我的程序向计数器添加1; 但我的问题是,当你第三次点击时它只提醒2而不是3,我希望它尽可能地上去 有没有更好的方法来实现这一点,谢谢

这是我的代码:

Var q=1;
if ($("#"+val).length==0){
alert (q)
}else
{
q=q+1
alert (q)
}

请在这里点击我的按钮的完整代码,注意var q在全局模式下声明:我不是这个程序的专家,请有人修改我的代码,以便我可以让它工作

$(document).on('click',".add", function(){

var add=($(this).attr('id')) //this collect the id

var q=1;
        var val=($(this).attr("name"))

 if ($("#"+val).length==0) {

        alert(q)
 }else{
q=q+1
 alert(q)
 }

3 个答案:

答案 0 :(得分:0)

将变量q声明为全局变量,以便在整个页面生命周期内可用,直到刷新页面。

     <script>
     var q = 1;
     function Myfunction()
     {
     // put your logic here and use the q 
     }  
     </script>  

答案 1 :(得分:0)

您需要将Var q=1;声明为全球。

示例

Var q=1;
$('SELECTOR').click(function(){ /* increment code */ });

如果它只是错字然后忽略或请放;来结束陈述。

答案 2 :(得分:0)

q设为0开始。你可以跳过if - else ...

var q = 0;
$(document).off('click', 'SELECTOR').on('click', 'SELECTOR', function() {
    q++;
    alert(q);
)};

编辑:

首先,你的var q并不像你想象的那样全球化。它应该在您的点击处理程序之外。在您编写时,每次单击.add时,q都将设置为1。

上面的代码替换了您的所有代码。但我会根据你的需要进行调整...... (我们都是初学者)

var q = 0;
$(document).off('click', '.add').on('click', '.add', function() {
    var add = $(this).attr('id');
    var val = $(this).attr("name");
    if($('#'+val).length != 0) {
        q++;
        alert(q);
    } 
    else {
        alert(q);
    }
)};

注意:我首先使用.off()以防万一。我喜欢这种方式,如果你不这样做,你只能留下.on() ...

希望这有助于你。