Javascript单击功能在Gallery脚本中断开

时间:2012-12-11 10:33:37

标签: javascript

我正在尝试用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(++);

2 个答案:

答案 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');
};