<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
<script type="text/javascript">
var num=200;
function startCount() {
document.getElementById('count').value=num;
num=num-1;
var a=setTimeout("startCount()",2)
}
startCount()
</script>
</head>
<body>
<form>
<input type="text" id="count" />
</form>
</body>
</html>
为什么直接调用函数就没反应,放在input点击按钮里面调用函数就就可以成功呢
第14行写这句: window.onload=startCount;
我的代码:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
<script type="text/javascript">
var num=0;
function startCount() {
document.getElementById('count').value=num;
num++;
setTimeout("startCount()",1000);
}
setTimeout("startCount()",1000);
</script>
</head>
<body>
<form>
<input type="text" id="count" />
</form>
</body>
</html>
先加载的js代码 后加载的input
你执行startCount()的时候那个count的元素还没加载进来,JS就报错了,所以就不行了
个人理解应该要通过一些特定的事件才能触发方法,不然的话页面不知道你要采取怎样的方式去执行方法,因此可以像楼上所说的通过onload(当打开页面时执行),也可以用onclick点击或onmouseover(鼠标移动到上面执行)等事件触发
你可以添加onclick事件触发,或者添加
window.onload=function(){
startCount();
}
来触发函数
因为你的这些功能都定义在function里面,默认是不会触发的,因此要通过一些点击事件来触发,因此要放在点击按钮里面触发