Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 写入计数器以计算单击次数_Javascript_Jquery_Counter - Fatal编程技术网

Javascript 写入计数器以计算单击次数

Javascript 写入计数器以计算单击次数,javascript,jquery,counter,Javascript,Jquery,Counter,我的网站上有两个按钮。下一个和上一个。我想写一个代码,每次单击next时增加值,每次单击previous时减少值。我希望在输入中显示该值。但输入中显示的值始终为0,并且不会随单击而更改 这是我的密码: function count(){ var $counter=0; $(".next-button").click(function() { $counter=$counter+1; }); $(".previous").click(functio

我的网站上有两个按钮。下一个和上一个。我想写一个代码,每次单击next时增加值,每次单击previous时减少值。我希望在输入中显示该值。但输入中显示的值始终为0,并且不会随单击而更改

这是我的密码:

function count(){
    var $counter=0;
    $(".next-button").click(function() {
         $counter=$counter+1;
    });
    $(".previous").click(function() {
        $counter=$counter-1;
    });
    return $counter;
}

document.getElementById('counter').value =count();

此函数中不需要返回
return
。事实上,你根本不需要函数。相反,每次更新计数器时,都要显示它

var $counter=0;
$(".next-button").click(function() {
     $('#counter').val($counter++);
});
$(".previous").click(function() {
    $('#counter').val($counter--);
});

每次元素中的值发生更改时,都应更新该值:

(function count(){
    var counter=0,
        $container = $('#counter');
    $(".next-button").click(function() {
        $container.text(++counter);
    });
    $(".previous").click(function() {
        $container.text(--counter);
    });
})();

全局声明计数器,使其仅初始化一次

var$counter=0;
var count=document.getElementById('counter');
$(“.next”)。单击(函数(){
count.value=+$counter;
});
$(“.pre”)。单击(函数(){
count.value=--$counter;
});

下一个
之前

您的代码包含多个错误。在
count()
函数中将变量重置为0,并将
click()
函数放入函数中

var counter=0;
function count(){
    return counter;
}

$(".next-button").click(function() {
    counter = counter+1;
});
$(".previous").click(function() {
    counter = counter-1;
});

$('#counter').val(count());
// or 
$('#counter').val(counter);
我假设
$('#counter')
是一个输入文本框

p、 变量不需要前缀为
$
。关于匈牙利符号的扩展:何时使用,何时不使用。

您可以这样做:

var $counter = 0;

$(".next-button").click(function() {
    $counter = $counter + 1;
    refreshCount();
});
$(".previous").click(function() {
    $counter = $counter - 1;
    refreshCount();
});

function refreshCount() {
    document.getElementById('counter').value = $counter;
}

//init
refreshCount();

首先,您的赋值表达式实际上是运行计数函数

document.getElementById('counter').value =count();
count函数返回0

(function() {
  var $counter = 0;

  var add = function() {
    $counter ++;
    setCounterValue();
  }

  var del = function() {
    $counter --;
    setCounterValue();  
  }

  var setCounterValue = function() {
    document.getElementById('counter').value = $counter;        
  }

  $(".next-button").bind("click", add);

  $(".previous").bind("click", del);
})()

这是因为
count()
总是将
$counter
重置为0。另外,Javascript不是PHP。不需要
$
符号。为什么要将click函数嵌套在
count()中?听起来不正确。不建议将传统Javascript DOM与jQuery对象混合使用,但代码仍然有效。@Raptor Yes。使用以下命令:
$('#counter').val($counter)更好~