对Javascript中的一个变量的多次访问
Multiple access to a variable in Javascript
在Javascript中,我有一个函数每秒给变量加1,我想添加一个函数(点击调用)减去3。但我有(逻辑上)问题,因为两个函数都可以访问变量。
每秒递增的递归函数是这样的:
function incrementBD()
{
var BD = parseInt(document.getElementById('divBD').innerHTML);
BD = BD+1;
document.getElementById('divBD').innerHTML = BD;
setTimeout('incrementBD()',1000);
}
减去3的函数就是这个
function less3()
{
var BD = parseInt(document.getElementById('divBD').innerHTML);
BD = BD-3;
document.getElementById('divBD').innerHTML = BD;
}
目前,我的变量存储在一个中。我可以直接用Javascript处理它。
但是,对于多路访问问题,我应该怎么办?
谢谢你的帮助
编辑:我(按照建议)创建了一个全局变量。当我点击它时,它会像预期的那样减去3,但每次尝试时变量都会回到1。
var BD;
function incrementBD()
{
BD = parseInt(document.getElementById('divBD').innerHTML);
BD = BD+1;
document.getElementById('divBD').innerHTML = BD;
setTimeout('incrementBD()',1000);
}
function less3()
{
BD = parseInt(document.getElementById('divBD').innerHTML);
BD = BD-3;
document.getElementById('divBD').innerHTML = BD;
}
编辑2由于这个代码似乎适用于其他人,这里是我的html页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<head>
<title>Index</title>
<script src="fonctions.js"></script>
</head>
<body onload="incrementBD()">
<div id="content">
Broken Dreams : <span id="divBD">0</span>
</div>
<a href="" onclick="less3()">Minus 3</a>
</body>
</html>
问题不在于变量,而在于链接:
<a href="" onclick="less3()">Minus 3</a>
每次单击它时,它都会执行链接的操作,并导航到""
,从而重新加载当前页面。
为了防止这种情况,请从onclick处理程序返回false
,以防止<a>标签:
<a href="" onclick="less3();return false;">Minus 3</a>
或者,使用一个按钮:
<button onclick="less3()">Minus 3</button>
您应该考虑包含选项的范围。您可以使用全局变量来实现这一点:
var BD = 0; //global var
function incrementBD()
{
BD = BD+1; //uses global var (not the html value)
document.getElementById('divBD').innerHTML = BD; //"prints" the result to the html
setTimeout('incrementBD()',1000);
}
function less3()
{
BD = BD-3; //use the same global value
document.getElementById('divBD').innerHTML = BD; //"print" it again
}
相关文章:
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 导航到特定事件的另一个变量页面
- 在另一个函数中使用变量this
- 我可以在Javascript/jQuery中使用一个变量作为键吗
- 使用mongodb更新中的一个变量
- 为什么window.open不打开一个以变量形式给出的链接
- 将节点数据分配给另一个变量jstree
- 如何将变量传递到另一个js文件
- 我怎么能让流星简单模式中的一个字段等于一个js变量,并且仍然让用户填写简单模式的其余部分
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 将会话变量从一个页面传递到另一个页面
- Javascript:在激发函数后返回一个变量以供使用
- 替换另一个变量对象中的变量值
- 什么'它的意思是当一个变量位于括号外时
- 这在JavaScript中是一个好的变量名吗
- 可以't将sessionStorage设置为Javascript中的一个变量
- 如何在javascript中给变量一个随机值
- 在不同的.js文件之间传递变量;一个是在iframe内
- Console.log(变量);VS console.log([变量]);/一个提供信息,另一个没有
- 是否可以给变量一个默认值