我有以下功能:
<script>
var count=900;
var countM;
var counter=setInterval(timer, 1000); //1000 will run it every 1 second
function timer()
{
count=count-1;
countM=Math.floor(count/60);
if (count <= 0)
{
clearInterval(counter);
return;
}
for(var i=0; i<10; i++)
{
document.getElementById("timer"+i).innerHTML=countM+"mins. "+(count%60)+ " secs"; // watch for spelling
}
}
</script>
我正在显示它:
<span id="<?php echo "timer".$theCounter; ?>"></span>
$theCounter++;
问题是我想给它一个参数,它将是count
并且我不知道该怎么做。
答案 0 :(得分:1)
'我想给它打电话给它一个参数,它将是“计数”'
如下所示:
function createTimer(count) {
var countM,
counter=setInterval(timer, 1000);
function timer()
{
count -= 1;
countM = Math.floor(count/60);
if (count <= 0) {
clearInterval(counter);
return;
}
for(var i=0; i<10; i++) {
document.getElementById("timer"+i).innerHTML=countM+"mins. "+(count%60)+ " secs";
}
}
}
...将为您提供一个函数createTimer()
,您可以使用参数调用该函数:
createTimer(900);
如果你说你想要不同的跨度来拥有不同的计数器,那么你可以这样做:
function createTimer(count, elementID) {
// code exactly the same as above function except
// remove the `for` loop and just reference the elementID
// passed into the function:
document.getElementById(elementID).innerHTML=countM+"mins. "+(count%60)+ " secs";
}
createTimer(900, 'timer1');
createTimer(200, 'timer2');
// etc.
答案 1 :(得分:1)
喜欢这个吗?
var counter = window.setInterval(function() {
timer('parameter');
}, 1000);
我看不出javascript和PHP部分之间的关系。
答案 2 :(得分:0)
使用bind函数原型创建一个带有默认参数的函数。
timer.bind(null,count-1);
第一个参数是函数上下文(null表示全局),可选的以下参数是从左侧设置的函数参数。结果是新功能。所以在你的代码中:
function timer(count) {
console.log(count); // do some stuff
if(count>0) setTimeout(timer.bind(null,count-1),1000);
}
timer(10); // counts from 10 to 0 in 1s interval
请参阅the fiddle