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 相关文章推荐
js的逻辑运算符 ||
May 31 Javascript
javascript实现的一个随机点名功能
Aug 26 Javascript
jQuery统计指定子元素数量的方法
Mar 17 Javascript
详解能在多种前端框架下使用的表格控件
Jan 11 Javascript
将 vue 生成的 js 上传到七牛的实例
Jul 28 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
Jul 31 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
Dec 27 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
Jan 09 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
May 14 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 jQuery
微信小程序wx.navigateTo方法里的events参数使用详情及场景
Jan 07 Javascript
js代码实现轮播图
May 04 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
typecho插件编写教程(五):核心代码
2015/05/28 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
js中的this关键字详解
2013/09/25 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
2014/05/14 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
JS常用表单验证方法总结
2014/05/22 Javascript
详解js闭包
2014/09/02 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
解决Python requests 报错方法集锦
2017/03/19 Python
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
Python实现的读写json文件功能示例
2018/06/05 Python
python高斯分布概率密度函数的使用详解
2019/07/10 Python
Python实现串口通信(pyserial)过程解析
2019/09/25 Python
python匿名函数的使用方法解析
2019/10/10 Python
什么是Python中的顺序表
2020/06/02 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
Html5 localStorage入门教程
2018/04/26 HTML / CSS
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
护士自我评价范文
2014/01/25 职场文书
门面房租房协议书
2014/08/20 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
长城的导游词
2015/01/30 职场文书
网络销售员岗位职责
2015/04/11 职场文书
python文件与路径操作神器 pathlib
2022/04/01 Python
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL