我正在尝试设置一个内部计数器,每当用户点击触发onclick功能的链接时,该计数器就会加1。它从0开始,每次用户点击链接时,计数器将增加1(或任何你想要的整数)。刷新时计数器应重置为0,并且不能在全局范围内声明保存整数值的变量。
我继续遇到如何最初声明变量的catch22,而不是每次函数运行时都重复这个声明,基本上将计数器值设置回原始值。
答案 0 :(得分:3)
我不确定这是你所追求的,但这里有两种方法可以做你想做的事情:
// method 1: use a private scope
var click_handler = (function() {
var counter = 0; // this is not in global scope!
return function() {
counter++;
};
})();
// method 2: use a function property
function click_handler() {
click_handler.counter++;
}
click_handler.counter = 0;
答案 1 :(得分:0)
这样的东西?这里计数器是局部变量,onclick函数定义在与计数器变量相同的范围内。每次刷新时,计数器也会重置为0。
<html>
<head>
<title>Link Counter</title>
<script type="text/javascript">
window.onload = init
function init() {
var counter = 0
var link = document.getElementById("link")
var display = document.getElementById("display")
function increase_counter() {
counter++
display.innerHTML = counter
return false
}
link.onclick = increase_counter
}
</script>
</head>
<body>
<a href="" id="link">Click Here </a>
<p id="display">0 </p>
</body>
</html>