2012-10-18 94 views
0
<html> 
<head> 
<title> Buttons</title> 
<style type="text/css"> 

.intro{background-color:;} 
.duction{background-color:blue;} 
.function{background-color:grey;} 
.equals{background-color:orange;} 
</style> 





</head> 
<body> 
<form name="calculator"> 
<input type="text" name="display" length="50" width="100"> 
<div> 
<input type= "button" value="7" class="intro" id="7" onclick="one(7)"></button> 
<input type= "button" value="8" class="intro" id="8" onclick="one(8)"></button> 
<input type= "button" value="9" class="intro" id="9" onclick="one(9)"></button> 
<input type= "button" value="+" class="intro" id="+" onclick="one(+)"></button> 
<input type= "button" value="-" class="intro" id="-" onclick="one(-)"></button> 
<div> 
<input type= "button" value="4" class="intro" id="4" onclick="one(4)"></button> 
<input type= "button" value="5" class="intro" id="5" onclick="one(5)"></button> 
<input type= "button" value="6" class="intro" id="6" onclick="one(6)"></button> 
<input type= "button" value="x" class="intro" id="x" onclick="one(*)"></button> 
<input type= "button" value="/" class="intro" id="/" onclick="one(/)"></button> 
<div> 
<input type= "button" value="1" class="intro" id="1" onclick="one(1)"></button> 
<input type= "button" value="2" class="intro" id="2" onclick="one(2)"></button> 
<input type= "button" value="3" class="intro" id="3" onclick="one(3)"></button> 
<input type= "button" value="=" class="intro" ></button> 
<div> 
<input type= "button" value="0" class="intro" id="0" onclick="one(0)"></button> 
<input type= "button" value="." class="intro" id="." onclick="one(.)"></button> 
<input type= "button" value="c" class="intro" onclick="clearDigit()"></button> 

<script type="text/javascript" src="C:\Users\LS\Desktop\QBJS\button.js"> 



</script> 



</body> 
</html> 

的Javascript无法添加数字来我的计算器显示屏

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

//每次我键入一个数字我的显示窗口它取代了以前数而不将它像一个实际的计算器会。也试图弄清楚为什么我不能得到出现在我的显示窗口我的函数符号....我怀疑它是与我的setTimeout ....

function AddDigit(x) 
    { 
    object=x; 
    if (eval(digit) == 0) 
    {digit = object;} 
    else 
    {digit = digit + object;} 

document.calculator.display.value=object; 

} 
+0

为什么使用计时器而不是立即调用AddDigit? – PherricOxide

回答

0

它不串联,它甚至没有添加。你不能像那样通过。原因是当你用一个字符串发出回调时,它只会调用该函数。如果你想传递参数,那么你需要创建一个闭包并将它们传递给那里。

试试这个:

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

更可能你的意思传递是事件:

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

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

此外,在AddDigit,有可能你想改为:

document.calculator.display.value += object; 
0

你这样做,

document.calculator.display.value=object; 

但级联的版本是 “数字” 变量。