2012-07-05 7 views
0

J'ai un peu de javascript dans une fonction qui crée et remplit un carrousel d'images. Il fonctionne bien après l'avoir activé dans une fenêtre pop-up les 5 ou 6 premières fois, mais il finit par bloquer le navigateur. Je pense qu'il y a une sorte de fuite, comme si quelque chose à l'intérieur devait être effacé avant qu'il ne soit à nouveau créé. Je sais que c'est le carrousel parce que si je me débarrasse de cette partie du script, il ne se bloque plus.javascript écrasant navigateur iPad

Voici le script carrousel:

/* carousel */ 

var carousel, 
el, 
i, 
page, 
slides; 

carousel = new SwipeView('#wrapper', { 
         numberOfPages: slides.length, 
         hastyPageFlip: true 
         }); 

// Load initial data 
for (i=0; i<3; i++) { 
    page = i==0 ? slides.length-1 : i-1; 

    el = document.createElement('span'); 
    el.innerHTML = slides[page]; 
    carousel.masterPages[i].appendChild(el) 
} 

carousel.onFlip(function() { 
       var el, 
       upcoming, 
       i; 

    for (i=0; i<3; i++) { 
     upcoming = carousel.masterPages[i].dataset.upcomingPageIndex; 

     if (upcoming != carousel.masterPages[i].dataset.pageIndex) { 
      el = carousel.masterPages[i].querySelector('span'); 
      el.innerHTML = slides[upcoming]; 
     } 
    } 
}); 

Ce script est exécuté chaque fois que je clique sur un lien qui lance une fenêtre flottante.

Répondre

0

J'ai découvert que j'avais besoin d'effacer mon div wrapper. Au début de ma fonction appelez:

document.getElementById('wrapper').innerHTML = ""; 

Semble fonctionner.