2010-11-29 29 views
2

Si vous vous connectez ici http://freeri.freehostia.com/utanme/image.php Nom d'utilisateur/mot de passe: demo123 et appuyez sur une image et quand il glisse cliquez sur l'image principale, le faire deux ou trois fois et suddently vous remarquerez que le glissement prend de plus en plus de temps pour chaque fois.Jquery glissement devient plus retardée pour chaque clic

le code im en utilisant

$(function(){ 
    $('.slide:last-child img').live('click', function() { 
     $('.slide:first-child').animate({ 
      marginLeft: '0' 
     },500); 
     return false; 
    }); 
    $('.slide .img').click(function(){ 
     var img = $(this).find('a').attr('href'); 
     var title = $(this).find('h2').text(); 
     var desc = $(this).find('p').text(); 
     $('.slide:last-child img').attr('src',img); 
     $('.slide:last-child h2').text(title); 
     $('.slide:last-child #cont').text(desc); 
     $('body').prepend('<div id="cover"><img src="./images/loader.gif"/></div>'); 
     $('.slide:last-child img').load(function(){ 
      $('#cover').detach(); 
      $('.slide:first-child').animate({ 
       marginLeft: '-900px' 
      },500); 
     }); 
     return false; 
    }); 
}); 

ce que je suis absent ici? toute aide serait grandement appréciée

+0

Si le glissement est plus long et plus long, cela signifie-t-il que l'animation de la diapositive prend plus de temps à démarrer ou que la durée est plus longue pour l'animation? – illvm

+0

pour lancer l'animation – Breezer

Répondre

2
$('.slide:first-child').stop(true,true).animate({ marginLeft: '-900px' },500}); 

A propos de l'arrêt: (. Ne dis pas que c'est la cause de votre problème ici) http://api.jquery.com/stop/

De plus, j'ai eu des problèmes avec des événements en direct et de la charge sur le même élément

Peut-être pas approprié, mais si vous rencontrez toujours des problèmes, essayez de supprimer l'événement en direct avant la liaison de chargement suivante. Éditer: Notez que c'est probablement mauvais pour la performance (pour enlever et rajouter continuellement la liaison live). Je ne veux pas dire cela tout le temps mais cela peut aider à identifier votre problème.

+0

merci cela résolu – Breezer

+0

Merci, l'arrêt était utile pour moi. Bug de codage subtil; Lorsque je rafraîchissais du contenu, je demandais à un élément de m'assurer qu'il était fermé (ce qui déclenchait l'animation même quand il était déjà caché), cela ajoutait bien sûr le temps d'animation à chaque fois que quelqu'un cliquait sur rafraîchir. – toxaq

2

Essayez d'appeler stop (true, true); Lorsque les animations se termineraient, il se peut qu'il y ait d'étranges calculs en arrière-plan qui perturbent la façon dont le rappel est configuré. Je n'ai aucune idée si cela fonctionnera, mais ça vaut le coup d'essayer. :) -Thomas

+0

je ne $ ('diapositive:. Premier enfant). Anime ({ \t \t \t \t marginLeft: '-900px' \t \t \t}, 500, function() { \t \t Stop (vrai, vrai) \t stop (vrai, vrai) \t \t \t}); n'a pas aidé – Breezer

+0

$ (this) .stop (true, true); est ce qu'il est censé être ... Avez-vous écrit ce script? –