我正在尝试用JS创建一个画廊脚本(我只学了一个星期所以请原谅我是否犯了任何荒谬的错误!)。当我运行代码时,我收到controlLeft.onclick = changeImage(--);
的错误,说(
是一个意外的令牌。
通过我未经训练的眼睛,一切都应该没问题,但显然不是。我在这里做错了什么:
//Javascript Image Changer
var currentImage = document.getElementById("currentImage");
var imageArray = ["img/1.jpg", "img/2.jpg", "img/3.jpg", "img/4.jpg"];
var imageIndex= 0;
function changeImage(param){
currentImage.setAttribute("src", imageArray[imageIndex]);
imageIndex[param];
if (imageIndex >= imageArray.length){
imageIndex = 0;
}else if(imageIndex <= -1){
imageIndex = imageArray.length + 1;
}
}
var controlLeft = document.getElementById("left");
var controlRight = document.getElementById("right");
controlLeft.onclick = changeImage(--);
controlRight.onclick = changeImage(++);
答案 0 :(得分:2)
你不能像其他东西一样传递算子。即使在具有高阶函数的编程语言中,不通常也适用于运算符。
除此之外,onclick
需要一个函数 - 而不是函数调用的结果。
这是一个可能有效的片段:
function changeImage(mod){
currentImage.setAttribute("src", imageArray[imageIndex]);
imageIndex += mod;
if (imageIndex >= imageArray.length){
imageIndex = 0;
}else if(imageIndex <= -1){
imageIndex = imageArray.length + 1;
}
}
var controlLeft = document.getElementById("left");
var controlRight = document.getElementById("right");
controlLeft.onclick = function() { changeImage(-1); };
controlRight.onclick function() { changeImage(1); };
答案 1 :(得分:-4)
稍作修改:
controlLeft.onclick = function() {
changeImage('back');
};
controlRight.onclick = function() {
changeImage('forward');
};