javascript计时器事件使用详解


Posted in Javascript onJanuary 07, 2014

在 JavaScritp 中使用计时事件是很容易的,两个关键方法是:

setTimeout()
未来的某时执行代码

clearTimeout()
取消setTimeout()
setTimeout()
语法

var t=setTimeout("javascript语句",毫秒)

setTimeout() 方法会返回某个值。在上面的语句中,值被储存在名为 t 的变量中。假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它。
setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 "alert('5 seconds!')",或者对函数的调用,诸如 alertMsg()"。

第二个参数指示从当前起多少毫秒后执行第一个参数。

提示:1000 毫秒等于一秒。

当下面这个例子中的按钮被点击时,一个提示框会在5秒中后弹出。

<html>
<head>
<script type="text/javascript">
function timedMsg()
 {
 var t=setTimeout("alert('5 seconds!')",5000)
 }
</script>
</head>
<body>
<form>
<input type="button" value="Display timed alertbox!" onClick="timedMsg()">
</form>
</body>
</html>

实例 - 无穷循环

要创建一个运行于无穷循环中的计时器,我们需要编写一个函数来调用其自身。在下面的例子中,当按钮被点击后,输入域便从 0 开始计数。

<html>
<head>
<script type="text/javascript">
var c=0
var t
function timedCount()
 {
 document.getElementById('txt').value=c
 c=c+1
 t=setTimeout("timedCount()",1000)
 }
</script>
</head>
<body>
<form>
<input type="button" value="Start count!" onClick="timedCount()">
<input type="text" id="txt">
</form>
</body>
</html>

clearTimeout()

语法

clearTimeout(setTimeout_variable)
 

实例

下面的例子和上面的无穷循环的例子相似。唯一的不同是,现在我们添加了一个 "Stop Count!" 按钮来停止这个计数器:

<html>
<head>
<script type="text/javascript">
var c=0
var t
function timedCount()
 {
 document.getElementById('txt').value=c
 c=c+1
 t=setTimeout("timedCount()",1000)
 }
function stopCount()
 {
 clearTimeout(t)
 }
</script>
</head>
<body>
<form>
<input type="button" value="Start count!" onClick="timedCount()">
<input type="text" id="txt">
<input type="button" value="Stop count!" onClick="stopCount()">
</form>
</body>
</html>

另外两个重要的方法:

setInterval()
setInterval() - executes a function, over and over again, at specified time intervals

作用是:循环执行一个方法,在规定的间隔时间内

语法:

window.setInterval("javascript function",milliseconds);

说明:第一个参数必须是一个函数,第二个参数是执行函数的间隔时间.

实例:

<html>
<script type="text/javascript">
setInterval(function() {alert("hello")},500);
</script>
</html>

说明:上面例子,执行效果是说每隔500ms就alert("hello");

再来一个时钟:

<html>
<body>
<p id="demo" ></p>
<script type="text/javascript">
setInterval(function(){ myTimer()},1000);
        function  myTimer(){
                var d = new Date();
                var t=d.toLocaleTimeString();
                document.getElementById('demo').innerHTML=t;
        }
</script>
</body>
</html>    

如何停止,setInterval()方法??

window.clearInterval()

语法:
window.clearInterval(intervalVariable)
The window.clearInterval() method can be written without the window prefix.
To be able to use the clearInterval() method, you must use a global variable when creating the interval method:
myVar=setInterval("javascript function",milliseconds);
Then you will be able to stop the execution by calling the clearInterval() method.

实例:

<html>
<body>
<p id="demo" ></p>
<p id="demo2" onclick="stop()">stop</p>
<script type="text/javascript">
var temp=setInterval(function(){ myTimer()},1000);
        function  myTimer(){
                var d = new Date();
                var t=d.toLocaleTimeString();
                document.getElementById('demo').innerHTML=t;
        }
function stop(){
   <html>
<body>
<p id="demo" ></p>
<p id="demo2" onclick="stop()">stop</p>
<script type="text/javascript">
var temp=setInterval(function(){ myTimer()},1000);
        function  myTimer(){
                var d = new Date();
                var t=d.toLocaleTimeString();
                document.getElementById('demo').innerHTML=t;
        }
function stop(){
        clearInterval(temp);
}
</script>
</body>
</html>
}
</script>
</body>
</html>
Javascript 相关文章推荐
IE6、IE7中获取Button元素的值的bug说明
Aug 28 Javascript
关于IE BUG与字符串截取substr的解决办法
Apr 10 Javascript
禁止拷贝网页内容的js代码
Jan 22 Javascript
javascript学习小结之prototype
Dec 03 Javascript
Angular.js自定义指令学习笔记实例
Feb 24 Javascript
作为老司机使用 React 总结的 11 个经验教训
Apr 08 Javascript
实例解析ES6 Proxy使用场景介绍
Jan 08 Javascript
详解Vue-axios 设置请求头问题
Dec 06 Javascript
CountUp.js数字滚动插件使用方法详解
Oct 17 Javascript
vue 路由子组件created和mounted不起作用的解决方法
Nov 05 Javascript
react ant Design手动设置表单的值操作
Oct 31 Javascript
React 高阶组件HOC用法归纳
Jun 13 Javascript
javascript创建和存储cookie示例
Jan 07 #Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
Jan 07 #Javascript
window.showModalDialog()返回值的学习心得总结
Jan 07 #Javascript
js showModalDialog参数的使用详解
Jan 07 #Javascript
js showModalDialog弹出窗口实例详解
Jan 07 #Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
Jan 07 #Javascript
JS获取DropDownList的value值与text值的示例代码
Jan 07 #Javascript
You might like
php,不用COM,生成excel文件
2006/10/09 PHP
PHPMailer 中文使用说明小结
2010/01/22 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
去除链接虚线全面分析总结
2006/08/15 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
Javascript数组Array基础介绍
2016/03/13 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
2017/11/15 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
Python3实现统计单词表中每个字母出现频率的方法示例
2019/01/28 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
Python实现Keras搭建神经网络训练分类模型教程
2020/06/12 Python
汉语言文学毕业生自荐信范文
2014/03/24 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
合作协议书格式范本
2016/03/21 职场文书
SQL中的三种去重方法小结
2021/11/01 SQL Server
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技