与jquery结合使用时的Javascript循环问题
Javascript loop issue when combined with jquery
所以我试图让它每次点击它都会改变颜色。但是,我在使循环工作时遇到问题。它工作一次,但之后就不起作用了,我尝试了几种不同的方法,但无法让它工作不止一次。任何帮助都会很棒!
<!DOCTYPE html>
<html>
<head>
<script>
</script>
</head>
<body>
<canvas id="myCanvas" width="800" height="490" style= background:black;>
</canvas>
<script>
</script>
<script>
function colorChecker(colorChanger) {
if (colorChanger == 1) {
ctx.fillStyle = 'green';}
if (colorChanger == 2) {
ctx.fillStyle = 'red';}
if (colorChanger == 3) {
ctx.fillStyle = 'yellow';}
if (colorChanger == 4) {
ctx.fillStyle = 'purple';}
if (colorChanger == 5) {
ctx.fillStyle = 'blue';}
}
var onOff = true;
var c = document.getElementById("myCanvas");
c.addEventListener('click',function() {
var colorChanger = 1;
if (colorChanger < 6) {
colorChanger++;
colorChecker(colorChanger);
}
else {
colorChanger = 1;
colorChecker(colorChanger);
}
}
);
var ctx = c.getContext("2d");
ctx.fillStyle = 'green';
var fallingWords = ["Java", "if", "else", "elsif", "True", "False", "null", "C++", "Python", "Math.random()", "X", "Y", "while", "do", "for", "loop", "import", "var", "let", "()", "{}", "arrays", "and", "or", "not"];
var things = [];
var objectNumber = 150;
for (var i = 0; i < objectNumber; i++) {
var a = {};
//randomly pick one tag
a.code = fallingWords[Math.round(Math.random() * fallingWords.length)];
a.x = Math.random() * 800;
a.y = Math.random() * 490 - 490;
a.speed = Math.random() * 10;
things.push(a);
}
setInterval(function () {
ctx.clearRect(0, 0, 800, 490);
for (var i = 0; i < objectNumber; i++) {
var a = things[i];
ctx.fillText(a.code, a.x, a.y);
a.y += a.speed;
if (a.y > 600) a.y = -50;
}
}, 90);
if (onOff === false) {
objectNumber = 0;
}
else {
objectNumber = 150;
}
</script>
</body>
</html>
在事件侦听器中,colorChanger
始终为 1:
.addEventListener('click',function() {
//THIS NEEDS TO BE DECLARED OUTSIDE THIS FUNCTION
var colorChanger = 1;
if (colorChanger < 6) {
colorChanger++;
colorChecker(colorChanger);
}
else {
colorChanger = 1;
colorChecker(colorChanger);
}
}
);
相关文章:
- Javascript循环不会自我更新
- JavaScript循环无法正确计算/显示结果
- JavaScript循环并等待函数
- Javascript:循环属性内部的条件递增或递减
- Array方法中的Javascript循环
- 用于使用javascript循环选择选项
- 中断javascript循环
- 如何在javascript循环中打印代码
- jQuery.ajax()访问javascript循环中的beforeEnd局部变量
- 在qualtrics上使用javascript:循环块中的问题id
- GoogleMapsV3api只显示Javascript循环中的一些标记
- Javascript循环限制为仅1
- 如何将jQueryeach()转换为常规的javascript循环
- 有没有javascript循环的替代方案
- GraphQL代码中的Javascript循环依赖关系
- Javascript循环文本
- JavaScript循环中的HTML
- ..的Javascript..循环中的对象没有在最后一个属性上运行
- JavaScript循环迭代太多
- Javascript循环计算