2017-01-31 3 views
0

Also ich weiß, ich brauche Schließung, um ein Problem mit widersprüchlichen Zähler in meinem Skript zu lösen, aber versuchen Sie, wie ich könnte ich kann einfach nicht verstehen, wie es geht. Mein Skript ist:make this usage closure

var i= 1; 

function we_start_slide(gallery, img, delay) 
{ 
    var gallery_images= JSON.parse(JSON.stringify(img)); 
    var img_count= img.length; 

    document.getElementById(gallery + '_slide').innerHTML=gallery_images[0]; 
    test= setInterval(function(){we_slide_show(gallery, gallery_images, img_count)}, delay); 
} 
function we_slide_show(gallery, gallery_images, img_count) 
{ 
    document.getElementById(gallery + '_slide').innerHTML=gallery_images[i]; 
    if(i < img_count-1) i++; 
    else i=0; 
} 

Könnte jemand mir bitte erklären, wie die Verwendung Schließung die Zählervariable zu verbergen i so dass andere fucntions es nicht ändern kann? Danke.

+2

einfach alles in 'we_start_slide' bewegen? – Bergi

+0

Wenn Sie das tun, dann ist ich verloren, nachdem we_start_slide beendet ist. – Zaper127

+1

Nein, das ist nicht der Sinn von Schließungen. – Bergi

Antwort

1

Closure Beispiel:

(function(window){ 
    var i = 1; 
    window.we_slide_show = function (gallery, gallery_images, img_count) 
    { 
     document.getElementById(gallery + '_slide').innerHTML=gallery_images[i]; 
     if(i < img_count-1) i++; 
     else i=0; 
    }; 
})(window); 
+0

Das hat perfekt funktioniert. Vielen Dank! – Zaper127