2012-02-22 54 views
1

我想要一個按鈕點擊增加的計數器。我嘗試了以下代碼,但打印的值保持不變:如何在點擊時增加計數器?

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

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

我該如何做我想要的?

+3

我已經清理了你的問題,但我不能自己編輯最後一行。我認爲它現在的樣子聽起來太好了。 – 2012-02-22 16:58:40

+2

謝謝你,我已經學了4個月的英語,有時我寫錯了:) – CWOmer 2012-02-22 17:02:38

+1

你的問題是非常可以理解的。只有4個月的學習,你做得很好。保持良好的工作:-) – 2012-02-22 18:02:02

回答

1

您需要在函數之外初始化您的計數器。您每次點擊都清除它。

var sayi = 1; 

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

這是一個相當詳細writup我用您的具體目標爲稻草人做了關閉(呃......問題)

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

基本上你可以做的是一個2種方式。

  • 在事件處理程序範圍外創建一個計數器變量。

    var count = 0; 
    element.onclick = function() { 
        count++; 
    }; 
    
  • 使用了閉包來提供每個元素包含的事件處理程序本身內包括其自己獨特的計數器。我在博客文章中詳細說明了這一點。

2

我能想到

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

小提琴這裏http://jsfiddle.net/PKcrd/

+0

謝謝你,我明白了。 – CWOmer 2012-02-22 17:00:53

0
var clickCounter = 0; 

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

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

非常感謝你這是正確的答案。 – CWOmer 2012-02-22 16:58:54

0

我覺得這個最簡單的是你想要什麼:

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

這是個好主意,最簡單的方法:)謝謝你。 – CWOmer 2012-02-22 17:03:30

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> 

這是我能想到的最簡單的方法。

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> 
+1

你可以添加一些關於你的答案的解釋嗎?謝謝 – Allan 2017-12-22 05:17:44