Javascript 无法清除设置超时

Javascript 无法清除设置超时,javascript,Javascript,双击发送两个单击事件,然后发送双击事件。第二次调用one时,它会用一个新id替换timer,但原始超时仍然可以执行。调用dblclick处理程序时,它会清除第二个超时,但不会清除第一个超时 解决方案是在分配计时器之前,清除one中的任何现有超时 var timer; var object; var thing; var digit="0"; //this function fires when a single click occurs function one(event){ tim

双击发送两个单击事件,然后发送双击事件。第二次调用
one
时,它会用一个新id替换
timer
,但原始超时仍然可以执行。调用dblclick处理程序时,它会清除第二个超时,但不会清除第一个超时

解决方案是在分配
计时器之前,清除
one
中的任何现有超时

var timer;
var object;
var thing;
var digit="0";

//this function fires when a single click occurs

function one(event){
   timer = setTimeout("AddDigit(object)",500);
   object = event;
}

//The AddDigit function keeps firing right after my double click function 
function AddDigit(x){
   object=x;
   if (eval(digit) == 0){ digit = object; }
   else{ digit = digit + object; }

   document.calculator.display.value = object;

}
// This function is supposed to stop the AddDigit function from firing...

document.ondblclick = function(button){
   clearTimeout(timer);

   thing=button.target;
   thing.setAttribute("class","duction");
}

请参见设置超时(“添加数字(对象)”,500)
eval(数字)
?“为什么?”埃尔克兰斯说。你不喜欢吗?:)别忘了选择这个作为答案!
function one(event)
{
    clearTimeout(timer);
    timer = setTimeout(function() {
        AddDigit(event);
    }, 500);
}