如何在点击时增加计数器?

时间:2012-02-22 16:54:13

标签: javascript jquery

我想要一个按钮点击增加的计数器。我尝试了以下代码,但打印的值保持不变:

$(document).ready(function () {
    $("#gonder").click(function() {
        var baslik = document.title;
        var sayi = 1;
        var sayi1 = sayi++;

        document.title = '(' +sayi+ ')' + baslik;
    });
});

我该怎么办?

7 个答案:

答案 0 :(得分:2)

我能想到的最简单的

<button>clicked 0 times</button> 
var count = 0;
$('button').click(function(){
     count++;
    $(this).text("clicked "+count+" times");
});

在这里摆弄http://jsfiddle.net/PKcrd/

答案 1 :(得分:1)

这是一个相当详细的写作,我使用你的确切目标作为稻草人(呃......问题)在闭包上做了

http://jondavidjohn.com/blog/2011/09/javascript-event-handler-persistance-with-closures

基本上你可以采用以下两种方式之一。

  • 在事件处理程序范围之外创建一个计数器变量。

    var count = 0;
    element.onclick = function() {
        count++;
    };
    
  • 使用闭包为每个元素提供事件处理程序本身包含的唯一计数器。我在博客文章中详细说明了这一点。

答案 2 :(得分:1)

您需要在功能之外初始化您的计数器。您在每次点击时都清除它。

var sayi = 1;

$(document).ready(function () {
    $("#gonder").click(function() {
    var baslik = document.title;
    sayi++;
     document.title = '(' +sayi+ ')' + baslik;
    });
});

答案 3 :(得分:0)

var clickCounter = 0;

$(document).ready(function () {
    $("#gonder").click(function() {
    var baslik = document.title;
    var sayi = 1;
    clickCounter++;

    document.title = '(' +sayi+ ')' + baslik;
});
});

答案 4 :(得分:0)

我认为这就是你想要的:

var sayi = 1;
var baslik = document.title;
$("#gonder").click(function() {
    document.title = '(' + (++sayi) + ')' + baslik;
});​

答案 5 :(得分:0)

您可以尝试:

<button class="counter">I have been clicked 0 times</button> 
<script type="text/javascript">
    var count = 0;
    $('button.counter').click(function(){
        count++;
        $(this).text("clicked "+count+" times");
    });
</script>

这是我能想到的最简单的。

答案 6 :(得分:0)

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<button id="btn" onclick="f1();">Button</button>
<p id="demo"></p>
<script>
var count=0;
function f1()
{

    document.getElementById("demo").innerHTML=count;
    count++;
}
</script>
</body>
</html>