【发布时间】:2022-01-16 08:05:12
【问题描述】:
我正在用 JavaScript 开发一个程序,每次按下按钮时,图像应该在每次按下时交替显示——如果它当前是“盒子打开”图像,它应该切换到“盒子关闭”图像。类似地,如果它当前处于关闭状态,它应该切换到“盒子打开”。但是,我面临“非法调用”错误如何解决?
var jackbox = document.getElementById("jackbox");
function click()
{
if (this.id == "Jump out,Jack!")
{
document.getElementById("jackbox").src = "https://www.paulneve.com/pp/jackbox-open.jpg";
}
else(this.id == "Jump out,Jack")
{
document.getElementById("jackbox").src = "https://www.paulneve.com/pp/jackbox-open.jpg";
}
}
document.getElementById("toggle").onclick = open;
<div style="text-align: center; height: 280px;">
<img id="jackbox" src="https://www.paulneve.com/pp/jackbox-closed.jpg" />
<br/>
<button id="toggle">Jump out, Jack!</button>
</div>
【问题讨论】:
-
您不应该使用近三年前的
onclick-style 事件属性。而是使用现代且优越得多的addEventListener技术。 -
什么是
open?并且没有元素具有您的函数中的 id 值;这是不可能的,因为 id 属性值不能有空格。 -
您的
click函数从未实际使用过,顺便说一句。而且你不应该对this是 那样做假设。 -
还有你到底是从哪里得到这个错误的?该错误应该与某行代码相关联。
标签: javascript html css windows macos