[英]Why doesn't my JavaScript function call another function?
在 html 中,我调用了一个 javascript 函数 setMode(int),它按预期工作。 这个函数完成参数输入,应该再次调用另一个javascript函数mode(String)。 问题是,没有调用 mode(String) 。
function setMode(mode) {
mode("?set=" + String(mode));
}
function mode(parameter) {
parameter = (typeof parameter === 'undefined') ? '' : parameter;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
switch (parseInt(this.responseText)) {
case 0:
document.getElementById("radio-auto2").checked = true;
break;
case 1:
document.getElementById("radio-open2").checked = true;
break;
case 2:
document.getElementById("radio-close2").checked = true;
break;
default:
}
}
};
xhttp.open("GET", "mode" + String(parameter), true);
xhttp.send();
}
函数参数mode
隐藏了更高范围的函数mode(parameter)
。 JavaScript 不会保留名称字典并通过它的使用方式来推断您打算使用哪个,因此它无法知道您编写的第一种mode
应该与第二种mode
。 你必须自己做出这种区分。
最简单的解决方案是更改参数名称或函数名称,这样就不会隐藏另一个。 我认为mode
对于函数来说是一个糟糕的名字,因为它没有描述函数的作用。 尝试将其重命名为submitMode
或其他名称。
尝试更改变量的名称,这样函数和变量就不会被称为同一个东西
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.