Javascript 函数 setInterval() 只工作一次
Javascript Function setInterval() works only one time
伙计们!我想问一下Javascript函数setInterval()。我的问题是 setInterval() 只工作一次,不重复。
这是我的 HTML 代码
<button id = 'btun' name = 'btun' onclick = 'changecolor();' class = 'btn btn-success btn-block'>Color Change</button>
和 Javascript 代码
function below(t){
var button = document.getElementById('btun');
var quadrant = (t*t + 2*t + 1)+"px";
console.log('ye');
button.style.marginTop = quadrant;
document.write(pix);
}
var doBelow = setInterval(below(t++),1);
if(t > 50){
clearInterval(doBelow);
}
我找不到问题所在。
setInterval
期望回调作为第一个参数,但您正在调用实际函数。
调用应如下所示
setInterval(function() {
below(t++); }
,1);
所以在这里你创建一个匿名回调,它将在下面调用你的函数。最好将退出条件t >= 50
below
函数中
setInterval
甚至一次都不起作用。函数被调用一次的原因是你在尝试使用setInterval
时调用它,并且函数的返回值(undefined
)在setInterval
调用中使用。
使用函数表达式创建调用 below(t++)
的间隔。您可以将检查t > 50
条件的代码放在函数中,否则也只会运行一次。
function below(t){
var button = document.getElementById('btun');
var quadrant = (t*t + 2*t + 1)+"px";
console.log('ye');
button.style.marginTop = quadrant;
document.write(pix);
if(t >= 50){
clearInterval(doBelow);
}
}
var doBelow = setInterval(function() { below(t++); },1);
注意:在间隔中使用document.write
不是一个好主意。当它在页面完成后运行时,它将打开一个新页面进行写入,该页面将替换当前页面。
相关文章:
- Jquery FadeIn FadeOut 只工作一次
- jQuery滚动功能只工作一次
- iOS鼠标中心绑定只工作一次
- mongoose.js Model.remove在循环中只能工作一次
- 复选框一次选中一个不在gridview中工作
- Regex拆分-工作一次
- EventListener只能工作一次
- jQuery animate只在单击时工作一次
- data th JS每页只工作一次
- Jquery选择选项并获取只工作一次的更改值(页面加载时)
- remove仅每隔一次进行儿童工作
- CSS 类在验证时只工作一次
- Chrome扩展程序:浏览器操作单击按钮工作一次
- 单击仅工作一次
- MVC 分部视图中的 JQuery UI 自动完成功能只能工作一次
- Yelp API、OAuth和Angular与JSONP只工作一次
- 为什么这个脚本只工作一次?只替换元素一次,然后再也不替换
- 滚动时加载更多 滚动速度时一次工作两次
- 为什么一个ng应用程序一次工作
- Ajax请求只在每隔一次工作