JavaScript学习笔记09.11.28 NO.2

2.setInterval问题

1)与setTimeout的区别

在一般情况下,setTimeout仅执行一次,(当然,如果在一个函数里反复调用setTimeout,就可以重复执行了)而 setInterval是可以重复执行的,直到clearIntercal()

2)在IE下不兼容问题

 这个问题折磨了我50%的时间,哦买噶,以后是不是要半生都浪费在跟IE干仗上了。。。

本来,在chrome,ff,safari上都运行的很好,我相当激动,以至于遗忘了IE。。。后来在IE上一试,结果,完了,修改,google(此处为动词,嘿嘿),基本上花了大半天时间吧,终于搞定。 之前,语句是这样的:this.timer=setInterval(this.unfold,5,this.divs[index],this);结果在IE下完全不好使。最后,在某位大侠的文章里面看到如下描述:在IE下,setTimeout和setInterval是不支持参数传递的.问题很快就解决掉了,果然是我太菜了~

解决问题的函数如下: 

var mySetInterval = setInterval; 

window.setInterval = function(callback, interval) 

var args = Array.prototype.slice.call(arguments, 2); 

function callFn(){callback.apply(null, args);} 

return mySetInterval(callFn, interval); 


var mySetTimeOut = setTimeout; //修改setInterval

window.setTimeout = function(callback, timeout) 

var args = Array.prototype.slice.call(arguments, 2); 

function callFn(){callback.apply(null, args);}  

然后使用window.setTimeout或window.setInterval调用就可以了~

我的语句修改如下:

this.timer=window.setInterval(this.unfold,5,this.divs[index],this); //其中,this.divs[index],this是传递的两个参数

再次谢谢那位大侠,虽然他不认识我~ 

 目前,在IE中还有点排版的小问题,继续学习~全力兔子!

转载于:https://www.cnblogs.com/BlackCaffeine/archive/2009/11/28/1612554.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值