我的onclick方法已定义,但是出现未定义的错误。
我想在我的JavaScript文件中调用一个函数,该文件被一个窗口包围。 onload = funktion()但当我单击复选框时会发生此错误:未捕获ReferenceError:handleAverageHight未定义 在HTMLInputElement.onclick(index.html?ID = 1:50)
window.onload=function(){
var cb= document.getElementById('showAverage');
//shows the average high or remove it
function handleAverageHight() {
//do something
}
};
我要在其中调用的html:
<div class="form-check-inline">
<label class="form-check-label" >
<input id="show2D" type="checkbox" class="form-check-input" value=""/>
</label>
</div>
答案 0 :(得分:0)
您已在另一个函数内声明了 handleAverageHight()函数。在JavaScript中,当您在函数内部声明变量或函数时,无法在该函数外部访问它。这称为本地范围。如果在外部声明变量或函数,则任何地方都可以访问它。它称为全球范围。在函数内部声明了 handleAverageHight 函数后,您将无法在函数外部引用该函数。这样就发生了错误。
您可以通过两种方式对其进行修复。
方法-01:
在element.addEventListener()
函数中使用window.onload
。
window.onload = function(){
cb = //your check box
function handleAverageHight(){
// Your code goes here
}
cb.addEventListener("click", handleAverageHight);
}
方法-02:
将 handleAverageHight 用作全局变量,并对元素使用 onclick 属性。 [不推荐]
JS:
var handleAverageHeight;
window.onload = function(){
cb = //your check box
handleAverageHight = function(){
// Your code goes here
}
}
HTML:
<input type="checkbox" onclick="handleAverageHeight()" />