微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – clearTimeout如果存在

timer_gear只有在我按某个按钮(直到5秒)的情况下才会存在.但是还有另外一个功能,可以随时调用.在此功能中,我清除定时器并重新启动.但首先我必须检查对象是否存在,否则我得到这个错误
未捕获ReferenceError:未定义timer_gear

你能帮我解决吗?这些都不行.

if(timer_gear!="undefined")clearTimeout(timer_gear);

if(timer_gear)clearTimeout(timer_gear);

EDIT1:
首先我拼错了我的问题:if(!timer => if(timer
EDIT2:

完整的代码是:

function hide_gear(){
    $('#gear_div').animate({opacity: 0},1000);
    delete timer_gear; //EDIT3: destroy object
}

/*gear*/
$('#gear').click(function(){
    $('#gear_div').animate({
        opacity: 1,},1000,function() {
        timer_gear = setTimeout("hide_gear();",5000);
      });
});
$('#gear').mousemove(function(){
    if( ? ? ? )
    {
        clearTimeout(timer_gear);
        timer_gear = setTimeout("hide_gear();",5000);
    }

});

结果:

timer_gear// Uncaught ReferenceError timer_gear is not defined
timer_gear != undefined // Uncaught ReferenceError: timer_gear is not defined
typeof timer_gear !== "undefined" // WORKS
typeof timer_gear != "undefined" // WORKS,just tired it
var timer_gear; //at the begining - WORKS,but I did not wanted a new variable if its not necessary

谢谢你的答案!

解决方法

一个应该是:
if(typeof timer_gear !== "undefined"){
  clearTimeout(timer_gear);
}

而第二,但是这样不行就是timer_gear没有定义,所以你应该使用上面的typeof:

if(timer_gear){
  clearTimeout(timer_gear);
}

原文地址:https://www.jb51.cc/js/154633.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐