Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止在JS计算器中双击_Javascript - Fatal编程技术网

Javascript 防止在JS计算器中双击

Javascript 防止在JS计算器中双击,javascript,Javascript,我已经生成了一个JS计算器,但是有以下问题 我想防止同时双击加号、减号和除法按钮 我试过这样做 function myPlus(){ form.value += "+" plus.onclick = "" } 但它完全阻止了点击加号按钮 我在这里添加整个代码 会很高兴得到帮助的 var form=document.getElementById(“for”); var one=document.getElementById(“one”); var two=document.getElemen

我已经生成了一个JS计算器,但是有以下问题

我想防止同时双击加号、减号和除法按钮

我试过这样做

function myPlus(){
form.value += "+"
plus.onclick = ""
}
但它完全阻止了点击加号按钮

我在这里添加整个代码

会很高兴得到帮助的

var form=document.getElementById(“for”);
var one=document.getElementById(“one”);
var two=document.getElementById(“two”);
var三=document.getElementById(“三”);
var four=document.getElementById(“four”);
var five=document.getElementById(“五”);
var six=document.getElementById(“six”);
var seven=document.getElementById(“seven”);
var八=document.getElementById(“八”);
var nine=document.getElementById(“nine”);
var zero=document.getElementById(“零”);
var plus=document.getElementById(“plus”);
var sum=document.getElementById(“减号”);
var ap=document.getElementById(“ap”);
var doub=document.getElementById(“double”);
var dd=document.getElementById(“divide”);
var calc=document.getElementById(“got”);
calc.onclick=myFunction;
one.onclick=myFunction1;
2.onclick=myFunction2;
三、onclick=myFunction3;
4.onclick=myFunction4;
5.onclick=myFunction5;
6.onclick=myFunction6;
7.onclick=myFunction7;
8.onclick=myFunction8;
9.onclick=myFunction9;
zero.onclick=myFunction0;
plus.onclick=myPlus;
doub.onclick=myDouble;
sum.onclick=myFunction10;
dd.onclick=myFunctiondd;
ap.onclick=myAp;
函数myFunction1(){
形式值+=“1”;
}
函数myFunction2(){
form.value+=“2”;
}
函数myFunction3(){
form.value+=“3”;
}
函数myFunction4(){
形式值+=“4”;
}
函数myFunction5(){
形式值+=“5”;
}
函数myFunction6(){
形式值+=“6”;
}
函数myFunction7(){
形式值+=“7”;
}
函数myFunction8(){
形式值+=“8”;
}
函数myFunction9(){
form.value+=“9”;
}
函数myFunction0(){
form.value+=“0”;
}
函数myPlus(){
form.value+=“+”;
}
函数myDouble(){
form.value+=“*”
}
函数myFunction10(){
form.value+=“-”
}
函数myFunctiondd(){
form.value+=“/”
}
函数myAp(){
form.value+=“”
}
函数myFunction(){
var bec=评估值(形式值);
form.value=bec;
}
.general{
宽度:800px;
高度:600px;
背景色:rgb(121162168);
填充:50px;
}
.头{
宽度:300px;
高度:100px;
背景色:rgb(71,86,90);
边缘顶部:50px;
保证金:自动;
边缘顶部:20px;
}
.工具{
宽度:300px;
高度:300px;
背景色:白色;
保证金:自动;
垫面:1px;
背景色:rgb(152192199);
显示:表格;
}
}
.颜色{
背景色:rgb(134181189);
}
.首先{
字体大小:30px;
边界:1倍rgb(152192199);
宽度:75px;
文本对齐:居中;
字体系列:TarusHeavy;
背景色:rgb(134181189);
颜色:白色;
垫底:15px;
填充顶部:22px;
}
.第二{
字体大小:30px;
边界:1倍rgb(152192199);
宽度:75px;
文本对齐:居中;
字体系列:TarusHeavy;
背景色:rgb(125204218);
颜色:白色;
垫底:15px;
填充顶部:22px;
}
输入{
浮动:对;
边缘顶部:65px;
颜色:白色;
背景色:rgb(71,86,90);
字体大小:20px;
边界:透明;
文本对齐:右对齐;
}

7.
8.
9
/
4.
5.
6.
x
1.
2.
3.
-
0
,
=
+

您可以尝试的一件事是声明一个变量,例如“operatorClicked”,用于跟踪是否单击了运算符。将其初始化为false。在运算符函数中,包括一个
if
条件-如果
运算符clicked
为true,则不执行任何操作。如果为false,则附加运算符并将
运算符单击设置为true。如果按此方法操作,则每次单击一个数字时,还需要将
运算符clicked
重置为false。

可以尝试的一件事是声明一个变量,例如“operatorClicked”,用于跟踪运算符是否被单击。将其初始化为false。在运算符函数中,包括一个
if
条件-如果
运算符clicked
为true,则不执行任何操作。如果为false,则附加运算符并将
运算符单击设置为true。如果按此方法操作,每次单击一个数字时,还需要将
运算符clicked
重置为false。

我建议将所有数字和符号函数合并为如下内容:

var value = document.getElementById('value');
var numbers = document.getElementsByClassName('number');
var symbols = document.getElementsByClassName('symbol');
var evaluate = document.getElementById('got');
var lastClicked = 'symbol';

Array.from(numbers).forEach(function(numberElement) {
  var numberValue = numberElement.textContent;
  numberElement.addEventListener('click', function() {
    lastClicked = 'number';
    value.value += numberValue;
  });
});

Array.from(symbols).forEach(function(numberElement) {
  var symbolValue = numberElement.textContent;
  numberElement.addEventListener('click', function() {
    if (lastClicked !== 'symbol') {
      lastClicked = 'symbol';
      value.value += symbolValue;
    }
  });
});

evaluate.addEventListener('click', function () {
  value.value = eval(value.value);
});
然后可以将所有数字更改为数字类,将符号更改为符号类

然后在“符号单击”事件中,您将检查上次单击的符号

请参见下面的工作示例:

var value=document.getElementById('value');
var number=document.getElementsByClassName('number');
var symbols=document.getElementsByClassName('symbol');
var evaluate=document.getElementById('got');
var lastClicked='symbol';
数组.from(numbers).forEach(函数(numberrelation){
var numberValue=numberrelation.textContent;
numberrelation.addEventListener('click',function(){
lastClicked='number';
value.value+=numberValue;
});
});
数组.from(符号).forEach(函数(numberrelation){
var symbolValue=numberrelation.textContent;
numberrelation.addEventListener('click',function(){
如果(上次单击!==“符号”){
lastClicked='symbol';
value.value+=符号值;
}
});
});
evaluate.addEventListener('click',函数(){
value.value=eval(value.value);
});
.general{
宽度:800px;
高度:600px;
背景色:rgb(121162168);
填充:50px;
}
.头{
宽度:300px;
高度:100px;
背景色:rgb(71,86,90);
边缘顶部:50px;
保证金:自动;
差额
 function myFunction1(){
form.value +="1";
plus.onclick = myPlus;
doub.onclick =myDouble;

sum.onclick= myFunction10;

dd.onclick = myFunctiondd;

ap.onclick =myAp;