我是JavaScript的新手,我在使用etInterval()
时遇到了麻烦。
我正在创建一个模拟时钟作为练习。我有一个函数setTime()
,通过相应地旋转箭头来获取并显示时间。
我想一次又一次地执行这个功能。
这是我的代码:
$(document).ready(function(){
function setTime(){
var d = new Date();
var hour = d.getHours();
var minute = d.getMinutes();
var hourRotation = hour * 30 + (minute / 2);
var minuteRotation = minute * 6;
$("#small").css({
"-webkit-transform": "rotate(" + hourRotation + "deg)",
"-moz-transform": "rotate(" + hourRotation + "deg)",
"-o-transform": "rotate(" + hourRotation + "deg)"
});
$("#big").css({
"-webkit-transform": "rotate(" + minuteRotation + "deg)",
"-moz-transform": "rotate(" + minuteRotation + "deg)",
"-o-transform": "rotate(" + minuteRotation + "deg)"
});
};
function clockStart(){
setInterval(setTime(),1000);
setTime();
}
clockStart();
});
我想了解这种方法以及如何使用它。我能找到的例子看起来很明显,但我仍然无法使其发挥作用。
答案 0 :(得分:3)
您正在setInterval()
进行函数调用。
您想要做的是:
setInterval(setTime,1000);
答案 1 :(得分:2)
当你调用setInterval
函数时,你不会将函数引用作为参数传递,但它是返回值。
所以你应该使用:
setInterval(setTime,1000);
或
setInterval(function(){setTime()},1000);
答案 2 :(得分:2)
在调用setTime()
函数之前,对行setInterval(setTime(),1000);
中的函数setInterval()
进行评估,并将setTime()
的评估结果传递给{{函数作为参数,而不是函数istelf作为参数传递。
你需要做的是用这个函数名称(“setInterval()
”)替换函数调用(“setTime()
”),如下所示:
setTime