错误的代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>两张图片之间来回切换</title>
<script type="text/javascript">
var switchPicture = function () {
//获取图片元素
var oImage = document.getElementById("picture");
//具体切换方法
var flag = true;
if(flag){
oImage.src = "images/02.jpg";
flag = false;
}else{
oImage.src = "images/01.jpg";
flag = true;
}
}
</script>
</head>
<body>
<h3>点击图片可以在两张图片之间相互切换</h3>
<img src="images/01.jpg" id="picture" onclick="switchPicture()"/>
</body>
</html>
运行上面代码结果:图片只进行一次切换
原因在于:var flag = true;这行代码所在位置错误。
正确代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>两张图片之间来回切换</title>
<script type="text/javascript">
var flag = true;
var switchPicture = function () {
//获取图片元素
var oImage = document.getElementById("picture");
//具体切换方法
if(flag){
oImage.src = "images/02.jpg";
flag = false;
}else{
oImage.src = "images/01.jpg";
flag = true;
}
}
</script>
</head>
<body>
<h3>点击图片可以在两张图片之间相互切换</h3>
<img src="images/01.jpg" id="picture" onclick="switchPicture()"/>
</body>
</html>
对照下面的代码,注意二者的细节差别:
需求(触发事件):点击div,改变div的宽度、高度和背景颜色,再点击一次恢复原状,可以无限次循环
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DIV状态切换</title>
<style type="text/css">
#div1{
width: 80px;
height: 80px;
background-color: chartreuse;
}
</style>
<script type="text/javascript">
var flag = false;
function fn(thisObject) {
if(!flag){
thisObject.style.width = "40px";
thisObject.style.height = "40px";
thisObject.style.backgroundColor = "red";
flag = true;
}else {
thisObject.style.width = "80px";
thisObject.style.height = "80px";
thisObject.style.backgroundColor = "chartreuse";
flag = false;
}
}
</script>
</head>
<body>
<div id="div1" onclick="fn(this)"></div>
</body>
</html>

版权声明:本文为weixin_45190226原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。