我知道有人问过这个问题;而且我已经阅读了大部分被问到的问题都无济于事。我还是遇到了麻烦。我想点击图像并让图像源发生变化(从而改变图像)。
这是我的HTML:
<img id="picture1" onclick="showHide('builder1'); change('picture1');" width="25" height="25" src="pictures/down.png">
忽略“showHide('builder1');”。它正在发挥作用。我需要帮助改变('picture1')。
这是我的Javascript:
function change(id)
{
var isDown = true;
var picture = document.getElementById(id);
if(isDown === true)
{
picture.src = "pictures/pullup.png";
isDown = false; //No longer a down arrow...
}
else
{
picture.src = "pictures/down.png";
isDown = true;
}
}
我可以将图片更改一次(到'pictures / pullup.png'),但无法将其更改回来。 我还在if / else语句的某些点添加了警报,以查看它在哪里;它甚至从未达到声明中的“其他”部分。
答案 0 :(得分:7)
将var isDown = true;
移到函数范围之外 - 在函数之前定义它。
这样,每次运行该函数时,首先将变量设置为true
。
根据迈克的评论:你也可以使用这样的东西:
picture.src = "pictures/"
+ (picture.src=="pictures/pullup.png" ?
"pulldown.png"
: "pullup.png");
如果您不喜欢三元,请使用IF。
答案 1 :(得分:0)
您每次都在同一语句中定义isDown
为真。因此它永远不会到达条件语句的else
块。