首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
Web 开发
JavaScript
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
setInterval参数与Javascript类的问题
[已结帖,结帖人:wangbin20001216]
加为好友
发送私信
在线聊天
wangbin20001216
等级:
可用分等级:
贫农
总技术分:
40
总技术分排名:
141920
结帖率:
100.00%
发表于:
2007-04-21 16:30:27
楼主
我是一个菜鸟,我做了一段代码,但老是出问题.
这个CASE是这样个的.就是我一点 "开始 "线的宽度就开始增加,一点 "停止 "就停止.
附代码如下:请高手帮忙.
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">
<title> Write The Codes By Myself </title>
<script language= "javascript ">
<!--hidden
function cl()
{
this.timer=null;
}
cl.prototype.st=function(n){this.timer=window.setInterval( "this.add( ' "+n+ " ') ",100);}
cl.prototype.add=function(n)
{
var obj=document.getElementById(n);
obj.style.width=parseInt(obj.style.width)+10;
}
cl.prototype.stoped=function() { window.clearInterval(this.timer); }
var my=new cl();
-->
</script>
</head>
<body>
<hr style= "width:10px " id= "line ">
<form>
<input type= "button " name= "Submit " value= "开始 " onClick= "javascript:my.st( 'line '); ">
<input type= "button " name= "Submit2 " value= "停止 " onClick= "javascript:my.stoped(); ">
</form>
</body>
</html>
问题点数:
20
回复次数:
5
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zhaoxiaoyang
梅雪香@深圳
等级:
可用分等级:
掌柜
总技术分:
33103
总技术分排名:
291
发表于:
2007-04-21 17:05:51
1
楼 得分:
10
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">
<title> Write The Codes By Myself </title>
<script language= "javascript ">
<!--hidden
function cl()
{
this.timer=null;
}
cl.prototype.st=function(n){
var cc = this;
var c = function (){ cc.add(n) ; };
this.timer=window.setInterval(c,100);
}
cl.prototype.add=function(n)
{
var obj=document.getElementById(n);
obj.style.width=parseInt(obj.style.width)+10;
}
cl.prototype.stoped=function() {
window.clearInterval(this.timer);
}
var my=new cl();
-->
</script>
</head>
<body>
<hr style= "width:10px " id= "line ">
<form>
<input type= "button " name= "Submit " value= "开始 " onClick= "javascript:my.st( 'line '); ">
<input type= "button " name= "Submit2 " value= "停止 " onClick= "javascript:my.stoped(); ">
</form>
</body>
</html>
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
adverse
King
等级:
可用分等级:
中农
总技术分:
12710
总技术分排名:
1417
发表于:
2007-04-21 17:10:28
2
楼 得分:
4
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">
<title> Write The Codes By Myself </title>
<script language= "javascript ">
<!--hidden
function cl()
{
this.timer=null;
}
cl.prototype.st=function(n){this.timer=window.setInterval( "my.add( ' "+n+ " ') ",100);}
cl.prototype.add=function(n)
{
var obj=document.getElementById(n);
obj.style.width=parseInt(obj.style.width)+10;
}
cl.prototype.stoped=function() { window.clearInterval(this.timer); }
var my=new cl();
-->
</script>
</head>
<body>
<hr style= "width:10px " id= "line ">
<form>
<input type= "button " name= "Submit " value= "开始 " onClick= "javascript:my.st( 'line '); ">
<input type= "button " name= "Submit2 " value= "停止 " onClick= "javascript:my.stoped(); ">
</form>
</body>
</html>
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
adverse
King
等级:
可用分等级:
中农
总技术分:
12710
总技术分排名:
1417
发表于:
2007-04-21 17:14:07
3
楼 得分:
2
cl.prototype.st=function(n){this.timer=window.setInterval( "this.add( ' "+n+ " ') ",100);}
这句话有问题,在window执行this.add的时候,这个this并不是你所想的my对象,而是window(window.setInterval这个方法是属于window的,这个方法里用this当然也是指向window的)。只要改成对象引用就好了,my.add。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
dh20156
风之石
等级:
可用分等级:
富农
总技术分:
39280
总技术分排名:
231
发表于:
2007-04-21 17:19:49
4
楼 得分:
4
也许用setTimeout更好:
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">
<title> Write The Codes By Myself </title>
<script language= "javascript ">
<!--hidden
function cl(){
this.timer = null;
}
cl.prototype.add = function(n){
var obj = document.getElementById(n);
obj.style.width = parseInt(obj.style.width)+10;
cl.prototype.timer = window.setTimeout(function(){cl.prototype.add(n)},1000);
}
cl.prototype.stoped = function(){
if(cl.prototype.timer!=null){
window.clearTimeout(cl.prototype.timer);
}
cl.prototype.timer = null;
}
var my = new cl();
-->
</script>
</head>
<body>
<hr style= "width:10px " id= "line ">
<form>
<input type= "button " name= "Submit " value= "开始 " onClick= "javascript:my.add( 'line '); ">
<input type= "button " name= "Submit2 " value= "停止 " onClick= "javascript:my.stoped(); ">
</form>
</body>
</html>
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
wangbin20001216
等级:
可用分等级:
贫农
总技术分:
40
总技术分排名:
141920
发表于:
2007-04-24 10:13:27
5
楼 得分:
0
谢谢楼上的各位朋友帮忙,同时感谢adverse(King)还给我介绍了一些原理的知识.谢谢.向你们学习.我采用了zhaoxiaoyang(梅雪香@深圳) 的方法,因为跟我最近学的比较一致.再次感谢.
dh20156(风之石) 给我推荐的setTimeout是我学习的下一个命令.我会串通学习的.
我是新手,给分怎么给呀?
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
abc推荐给好友