gpt4 book ai didi

javascript - 如何在 JavaScript 中打开和关闭灯泡?

转载 作者:行者123 更新时间:2023-11-29 16:31:30 25 4
gpt4 key购买 nike

我正在用 javascript 创建一个函数,该函数应该更改 html 元素的 src 以使其看起来像 html 元素(灯泡)正在打开和关闭。它包括一个 if else if 语句来检查灯泡是否已经关闭或打开,然后将其转向相反的方向。该功能由一个按钮触发。

我的问题是,当我点击按钮时它会打开灯泡,但当我再次点击它时它会关闭。为什么会这样?我没有从控制台收到任何错误消息。

这是我的代码:

<!DOCTYPE html>
<html>
<head>
<style>
button {
background-color: white;
border-radius: 0.25px;
border-color: black;
height: 30px;
}
</style>
</head>
<body>

<button id = "button" onclick="light(on)"></button>

<img id="myImage" src="file:///C://Users/xenia/Downloads/light-bulb-off-
pixilart.png">

<script>
var on = 0; // 1 is true, 0 is false

function light(on) {
if (on == 0) {
document.getElementById("myImage").src="file:///C://Users/xenia/Downloads/ligh
t-bulb-on-pixilart.png"
on = 1
}
else if (on == 1){
document.getElementById("myImage").src="file:///C://Users/xenia/Downloads/ligh
t-bulb-off-pixilart.png"
on = 0
}
}
</script>
</body>
</html>

最佳答案

你正在使用一个全局变量,但是你在函数内部为一个局部变量传递了一个值。然后改变这个变量不会影响全局值,因为原始值是按值传递的。

您需要将此行更改为 (without on)

<button id = "button" onclick="light()"></button>

和函数签名,没有变量

function light() {

现在您访问全局变量 on 并更改值。


只是另一个提示,您可以采用 boolean 值(truefalse)并使用 if 语句省略检查直接变量并省略第二次检查,因为您只有两个值。

也许您可以省略第二个数字值检查,因为您没有分配与 01 不同的值的代码。

关于javascript - 如何在 JavaScript 中打开和关闭灯泡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56100606/

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