2010-11-29 7 views
2

klicken Sie hier anmelden http://freeri.freehostia.com/utanme/image.php Benutzername/Passwort: Demo123 und jedes Bild drücken und wenn es das Hauptbild gleitet klicken, tun, dass ein paar Mal und suddently werden Sie feststellen, dass das Gleiten für jedes Mal länger und länger dauert.JQuery Schiebe bekommt mehr verzögert für jede

der Code im mit

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

was ich hier fehlt? jede Hilfe wäre sehr

+0

Durch das Gleiten dauert länger und länger meinen Sie es länger, bis die Folienanimationen nimmt zu starten oder die Dauer ist länger für die Animation? – illvm

+0

startet die Animation – Breezer

Antwort

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

Über stop: (. Nicht sagen, es ist das, was Ihr Problem verursacht hier) http://api.jquery.com/stop/

Zusätzlich habe ich Probleme hatte mit Live-und Last Ereignisse auf dem gleichen Element

Ist möglicherweise nicht geeignet, aber wenn Sie immer noch Probleme haben, versuchen Sie, das Live-Ereignis vor dem anschließenden Laden zu entfernen. http://api.jquery.com/die/

Edit: Beachten Sie, es ist wahrscheinlich schlecht für die Leistung (um die Live-Bindung kontinuierlich zu entfernen und erneut hinzuzufügen). Ich meine nicht die ganze Zeit, aber es kann helfen, Ihr Problem zu lokalisieren.

+0

Dank dieser löste es – Breezer

+0

Danke, Halt war nützlich für mich. Subtiler Programmierfehler; Beim Auffrischen von Inhalten habe ich nach einem Element gefragt, um sicherzustellen, dass es geschlossen wurde (was die Animation ausgelöst hat, selbst wenn sie bereits ausgeblendet war). Dies summierte natürlich die Zeit der nahen Animation für jedes Mal, wenn jemand auf Aktualisieren klickte. – toxaq

2

Versuchen Sie fordern Stopp (true, true) geschätzt werden; wenn die End-Animationen angeblich kann es einige seltsamen Berechnungen im Hintergrund, dass Chaos los sein um mit, wie der Rückruf eingerichtet ist. Ich habe keine Ahnung, ob das funktioniert, aber es ist einen Versuch wert. :) -Thomas

+0

ich habe $ ('Slide. First-child'). Animieren ({ \t \t \t \t margin: '-900px' \t \t \t}, 500, function() { \t \t \t \t Anschlag (true, true); \t \t \t}); half nicht – Breezer

+0

$ (this) .stop (true, true); ist, was es sein soll ... Hast du dieses Skript geschrieben? –