最初我设置了多个按钮,如下所示:
<button id="plus" type="button" onclick=assignVarAddition()>+</button>
<button id="minus" type="button" onclick=assignVarSubtraction()>-</button>
这些按钮链接到各个javascript函数,其中变量firstNumb和secondNumb是从表单输入生成的。每个按钮链接到它自己的功能,alert()只会被调用一次。 功能如下
function assignVarAddition() {
var firstNumb = +document.getElementById("Numb1").value;
var secondNumb = +document.getElementById("Numb2").value;
var total = firstNumb + secondNumb;
alert("You added " + firstNumb + " and " + secondNumb + ". The total of these two numbers is " + total);
}
function assignVarSubtraction() {
var firstNumb = +document.getElementById("Numb1").value;
var secondNumb = +document.getElementById("Numb2").value;
var total = firstNumb - secondNumb;
alert("You subtracted " + secondNumb + " from " + firstNumb + " and got " + total);
}
我试图将js清理并缩短为一个函数,所以现在我尝试在一个函数中使用事件监听器,其中一个单独的事件监听器和一个单独的alert()被设置为单击每个按钮。但是当我点击一个时,两个警报都会被触发,然后是加法,然后是减法,总计会一个接一个地显示在单独的警告框中。 现在按钮和功能设置为:
<button id="plus" type="button" onclick=assignVarAddition()>+</button>
<button id="minus" type="button" onclick=assignVarSubtraction()>-</button>
function assignVarCalc() {
var firstNumb = +document.getElementById("Numb1").value;
var secondNumb = +document.getElementById("Numb2").value;
document.getElementById("plus").addEventListener("click", alert(firstNumb+secondNumb));
document.getElementById("minus").addEventListener("click", alert(firstNumb-secondNumb));
}
我需要做些什么来阻止同时调用这两个警报 - 这样当&#39; +&#39;按下按钮,警报框中只显示Numb1和Numb2的添加?不是附加值,而是减去它自己的警报。
请注意我为html和javascript设置了单独的文件,并在html文件中设置了标记。
答案 0 :(得分:1)
您尚未删除html中的onclick属性。以及如何计划触发对“assignVarCalc()”方法的调用。
您的问题的可能解决方案之一发布在此处:https://jsfiddle.net/9f7q8d9u/
Guid id = Guid.NewGuid();
答案 1 :(得分:1)
我已经复制了你的代码,而不是把它放到我的HTML文件中。我刚刚提醒“测试”一词来测试情况。看看我的代码:
<html>
<head>
<title></title>
<script>
var testing="hello";
</script>
</head>
<body></body>
</html>
如您所见,我删除了警报周围的功能。当我这样做时,它对我有用,看看这个例子。我希望这有效,这就是你要找的东西。如果它有效,请让我知道我很想听到。
答案 2 :(得分:1)
您可以共享相同的功能并每次发送不同的参数&#39; +&#39;或者&#39; - &#39;
function assignVarCalc(operation) {
var firstNumb = +document.getElementById("Numb1").value;
var secondNumb = +document.getElementById("Numb2").value;
if(operation=='+'){
alert(firstNumb + secondNumb);
} else{
alert(firstNumb - secondNumb);
}
}
&#13;
<button id="plus" type="button" onclick="assignVarCalc('+')">+</button>
<button id="minus" type="button" onclick="assignVarCalc('-')">-</button>
<input id="Numb1">
<input id="Numb2">
&#13;