大家好,欢迎来到IT知识分享网。
今天在做项目时。发现同事写的代码中的存在一个bug问题,出错代码如下:
clearTimeout();
setTimeout(function(){
// 具体业务逻辑
}, 1000);
这段代码在chrome、firefox浏览器中不会报错,但在IE上会报“调用对象无效”或着报“clearTimeout对象无效”这个错误信息,经过查询发现clearTimeout这个方法必须要传一个参数,具体应修改为:
var timer = null;
clearTimeout(timer);
timer = setTimeout(function(){
// 具体业务逻辑
}, 1000);
但是经过这样修改后,浏览器控制台还是报同样的错误,经常尝试发现,clearTimeout() 方法需要传入一个 setTimeout() 方法返回的id,当没有返回值时,clearTimeout() 方法在IE下执行还是会报错,最后修改结果如下:
var timer = null;
if(null != timer){
clearTimeout(timer);
}
timer = setTimeout(function(){
// 具体业务逻辑
}, 1000);
当修改成这样时,IE就不会在出现问题了。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23085.html