为每个值重复Javascript函数

时间:2012-05-21 03:34:10

标签: javascript function setinterval repeat

我有两个问题: 1 - 对于具有输入值的函数我如何设置间隔i测试此但现在正在工作

<script>
function bn(x)
{
alert (x);
}
setInterval("bn(x)",3000);
</script>
<a href="#" onclick="bn(1);">bn 1</a><br>

setInterval("bn()",3000);工作但显示'undefine'而不是'1'

一个2-如何设置重复两个值意味着重复此功能我尝试新值和函数重复两个值

<script>
function bn(x)
{
alert (x);
}
setInterval("bn(x)",3000);
</script>
<a href="#" onclick="bn(1);">bn 1</a><br>
<a href="#" onclick="bn(2);">bn 2</a>

2 个答案:

答案 0 :(得分:4)

好的,我想我明白你的意思;见下文:

对于您的第一个问题,您目前正在做的事情显然不起作用(因为您可能已经想到了)。要解决这个问题,您必须使用匿名函数;以下示例:

<script>
var x = 1;

function bn(x)
{
    alert (x);
}
setInterval(function() {
    bn(x);
},3000);

</script>

<a href="#" onclick="x = 1;">bn 1</a><br>
<a href="#" onclick="x = 2;">bn 2</a>

关于你的第二个问题,请参阅上面的最后两行;由于函数已经运行,您需要控制的是x的值,并确保将其范围设置为一般,而不是特定于使用它的函数。

onclick事件设置x的值。我确保代码有效;如果该值设置为2,则警报将显示2等。

答案 1 :(得分:0)

<script>
function bn(x) {
  alert(x);
}
setInterval(function() { bn(1) }, 3000)
</script>

每3秒调用bn并传递值1

之前未定义的原因是因为您试图传递x(在您发布的代码中)从未声明过。

传递给函数的参数不必与函数参数具有相同的名称。

<script>
var some_var = 1;
function bn(x) {
   alert(x);
}
setInterval(function() { bn(some_var) }, 3000);
</script>

将执行与前一个示例相同的操作,但您将能够在脚本中的其他位置更改some_var并将更新后的值传递给bn。