2010-10-26 4 views
2

Pourquoi le code a-t-il une erreur?Comment réparer l'erreur 'Uncaught TypeError: le nombre n'est pas une erreur de fonction' et 'Impossible de charger la ressource'

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); 
} 

Il s'exécute correctement la première fois mais reçoit une erreur après avoir cliqué.

Pourtant, le code ci-dessous fonctionne bien sans erreur:

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; 
}); 

alt text

+0

Ne nous donnez pas la source de votre fichier PHP, donnez-nous la source de votre page HTML (à droite droit-> View source) – Gareth

+4

En outre, quels messages d'erreur voyez-vous? Trouvez la console d'erreur dans le navigateur que vous utilisez, et si vous utilisez Firefox, installez Firebug – Gareth

+0

Si j'utilise du code fisrt, cela va changer la page suivante. mais si j'utilise le code ci-dessous, ça marche bien. Je le veux changer l'image dans le tableau "images" – meotimdihia

Répondre

6

Il semble que votre function Vous êtes en train ici écrasant:

nextImage = parseInt(currentImage)+1; 

Modifiez le nom de votre function ou variable. Encore mieux, n'utilisez pas un global namespace. De toute façon, vous ne pouvez pas écraser le name à partir d'une fonction, vous écrasez la fonction elle-même.

Après la ligne ci-dessus, nextImage contient un Number qui ne peut évidemment pas être exécuté.

droit des commentaires

just replace nextImage = parseInt(currentImage)+1; with var nextImage = > parseInt(currentImage)+1; – Alin Purcaru

Utilisation d'une instruction var, évite également l'nextImage d'entrer dans l'espace de noms global.

+0

+1 Vous avez un bon oeil. –

+0

Remplacez simplement 'nextImage = parseInt (currentImage) +1;' par 'var nextImage = parseInt (currentImage) +1;' –

+0

ce code est exécuté la première fois ... – meotimdihia

0

utilisation:

var nextImage = parseInt(currentImage)+1; 

de sorte que vous ne remplacez pas votre nom de la fonction

Questions connexes