我试图将类似的代码应用于现有的Stackoverflow主题,该主题应用以下代码:http://jsfiddle.net/zsNF5/4/
问题是:单击按钮时收到消息Uncaught ReferenceError: ic1 is not defined
。
function ImageCollection(images) {
this.images = images;
this.i = 0;
this.no = function(imgId) {
var img = document.getElementById(imgId);
this.i++;
if (this.i == images.length)
this.i = 0;
img.src = images[this.i];
}
this.yes = function(imgId) {
var img = document.getElementById(imgId);
this.i++;
if (this.i == images.length)
this.i = 0;
img.src = images[this.i];
}
}
var ic1 = new ImageCollection(
['images/test.jpg', 'images/no1.jpg', 'images/no2.jpg']
);
变量
ic1
是在代码中定义的,这就是为什么我感到困惑的原因。这是我的html:
<!DOCTYPE html>
<html>
<head>
<title>Face or no face</title>
<link rel="stylesheet" type="text/css" href="styles.css">
<script type="javascript.js"></script>
</head>
<body>
<div class="title">
<h1 >IS THIS A FACE?</h1>
</div>
<img class="photo" src="images/test.jpg">
<div class="container">
<form method="post" action="store.php">
<input type='button' class="button1" value='NO' onclick='ic1.no("container")' />
<input type='button' class="button2" value='YES' onclick='ic1.yes("container")' />
</form>
</div>
</body>
</html>
我希望我很清楚,因为我的JS技能显然非常有限。谢谢!
最佳答案
您正在使用var
关键字定义ic1
。这将其限制为最接近的范围(可能不是窗口)。将其定义为全局
window.ic1 = new ImageCollection(
['images/test.jpg', 'images/no1.jpg', 'images/no2.jpg']
);