1

每次单击按钮并且存在 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)
 }
4

3 回答 3

0

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

     <script>
     var q = 1;
     function Myfunction()
     {
     // put your logic here and use the q 
     }  
     </script>  
于 2013-03-28T03:34:22.007 回答
0

你需要声明你Var q=1;是全局的。

例子

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

如果只是拼写错误,请忽略或请;结束声明。

于 2013-03-28T03:35:33.090 回答
0

将您的设置q为 0 开始。比你可以跳过if - else...

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

编辑:

好吧,起初,你var q并不像你想象的那样全球化。它应该在您的点击处理程序之外。如您所写,每次单击 q 都会设置为 1 .add

我上面的代码替换了你所有的代码。但我会对其进行调整以更适合您的需求......(我们曾经都是初学者)

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()......

希望这对您有所帮助。

于 2013-03-28T08:10:13.477 回答