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);
}

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...