如何修复'未捕获的TypeError:数字不是函数错误'和'无法加载资源'错误

meo*_*hia 2 javascript jquery

为什么代码有错误?

var images = ['/test/img/Gallery/large/4cba0c8a-4acc-4f4a-9d71-0a444afdf48d.jpg','/test/img/Gallery/large/4cba0ca8-2158-41af-829a-0a444afdf48d.jpg','/test/img/Gallery/large/4cbc549a-5228-433f-b0bc-0a444afdf48d.jpg'];
$('.triggerNext').click(function(){
    nextImage();
    return false;
});
function nextImage(){
    currentImage = $('.Pagepage:eq(0)').val();
    nextImage = parseInt(currentImage)+1;
    $('#imageCurrent').attr('src',images[nextImage]);
    $('#imageCurrent') .css('position','absolute').css('left',($(window).width()- $('#imageCurrent').width() )/2);
    $('.Pagepage').val(nextImage);
}
Run Code Online (Sandbox Code Playgroud)

它第一次运行正确,但点击后出错.

然而,下面的代码运行良好,没有任何错误:

var images = ['/test/img/Gallery/large/4cba0c8a-4acc-4f4a-9d71-0a444afdf48d.jpg','/test/img/Gallery/large/4cba0ca8-2158-41af-829a-0a444afdf48d.jpg','/test/img/Gallery/large/4cbc549a-5228-433f-b0bc-0a444afdf48d.jpg'];
$('.triggerNext').click(function(){
    currentImage = $('.Pagepage:eq(0)').val();
    nextImage = parseInt(currentImage)+1;
    $('#imageCurrent').attr('src',images[nextImage]);
    $('#imageCurrent') .css('position','absolute').css('left',($(window).width()- $('#imageCurrent').width() )/2);
    $('.Pagepage').val(nextImage);
    return false;
});
Run Code Online (Sandbox Code Playgroud)

替代文字

jAn*_*ndy 6

这似乎是你function在这里覆盖你的:

nextImage = parseInt(currentImage)+1;
Run Code Online (Sandbox Code Playgroud)

从您的function或更改名称variable.更好的是,不要使用global namespace.无论如何,你不能覆盖name函数,你正在覆盖函数本身.

在上面的行之后,nextImage包含一个Number显然无法执行的行.

从评论中得出

只需替换nextImage = parseInt(currentImage)+1; with var nextImage => parseInt(currentImage)+1; - Alin Purcaru

使用var语句,也可以避免nextImage进入全局命名空间.