gpt4 book ai didi

javascript - Uncaught ReferenceError : toggleTest is not defined

转载 作者:行者123 更新时间:2023-12-02 18:53:48 25 4
gpt4 key购买 nike

toggleTest 是一个函数:

function toggleTest() {
if(document.testRunning) {
stopTest();
} else {
startTest();
}
};

当我单击按钮时,我会激活该行:

<input type="button" onclick="toggleTest()" id="toggleBtn" value="Stop Test" /><br />

并且我收到错误Uncaught ReferenceError:toggleTest未定义我不明白为什么在定义函数时会收到错误。

Demo jsFiddle

所有代码:

<!DOCTYPE html>
<html>
<head>
<title>HTML5 Canvas Drawing Speed Tests</title>
<script type="text/javascript">
window.onload=function(){
window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function( callback ){
window.setTimeout(callback, 1000 / 60);
};
})();
window.cancelRequestAnimFrame = ( function() {
return window.cancelAnimationFrame ||
window.webkitCancelRequestAnimationFrame ||
window.mozCancelRequestAnimationFrame ||
window.oCancelRequestAnimationFrame ||
window.msCancelRequestAnimationFrame ||
clearTimeout
} )();

function toggleTest() {
if(document.testRunning)
{
stopTest();
}
else
{
startTest();
}
};

function changeTestType() {
stopTest();
startTest();
}

function startTest() {
if(toggleBtn == "Start Test"){
var radios = document.getElementsByName("testType");
for(var i = 0; i < radios.length; i++)
{
if(radios[i].checked == true)
{
document.testType = radios[i].id;
document.useRAF = true;
break;
}
}
if(document.useRAF){
document.testInterval = setInterval(function() {runTest();}, 1000/60);}
document.testRunning = true;
runTest();
}
}

function stopTest() {
if(!document.useRAF)
clearInterval(document.testInterval);
else
cancelRequestAnimFrame(document.requestAnimFrameId);
document.testRunning = false;
document.getElementById("toggleBtn").value = "Start Test";
}

function runTest() {
if(document.useRAF)
document.requestAnimFrameId = requestAnimFrame(runTest);
document.testType();
}

var ToggleBtn = document.getElementById("toggleBtn").value;
}
</script>
</head>
<body >
<div id="canvasContainer" style="position: relative;">
<canvas id="testCanvas" width="180" height="50" style="background-color:black">Sorry your browser doesn't support the HTML5 canvas!</canvas>
</div>
<div id="debugData" style="position: relative;">
<div id="debugControls" style="position:absolute;top:60px;left:0">
<form id="testForm">
<input type="button" onclick="toggleTest()" id="toggleBtn" value="Stop Test" /><br />
<label><input type="checkbox" id="rAF" onclick="changeTestType()" />Use requestAnimationFrame</label><br /><br />
<label><input type="radio" onchange="changeTestType()" name="testType" id="functionA" />functionA</label><br />
<label><input type="radio" onchange="changeTestType()" name="testType" id="functionB" />functionB</label><br />
<label><input type="radio" onchange="changeTestType()" name="testType" id="functionC" />functionC</label><br />
<label><input type="radio" onchange="changeTestType()" name="testType" id="functionD" />functionD</label><br />
</form>
</div>
</div>
</body>
</html>

最佳答案

因为您将代码放入 window.onload 中,它创建了函数,并在该函数范围内定义了toggleTest!只需将其移动到全局范围内 http://jsfiddle.net/TEt8R/1/

//change to be in body

关于javascript - Uncaught ReferenceError : toggleTest is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15593233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com