2 Stimmen

Jquery Sliding verzögert sich bei jedem Klick

Wenn Sie sich hier anmelden http://freeri.freehostia.com/utanme/image.php Benutzername/Passwort:Demo123 und drücken Sie auf ein beliebiges Bild, und wenn es gleitet, klicken Sie auf das Hauptbild, machen Sie das ein paar Mal und Sie werden feststellen, dass das Gleiten jedes Mal länger dauert.

der von mir verwendete Code

$(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 übersehe ich hier? Jede Hilfe wäre mir sehr willkommen.

2voto

Thomas Havlik Punkte 1338

Versuchen Sie, stop(true, true); aufzurufen, wenn die Animationen angeblich enden, es können einige seltsame Berechnungen im Hintergrund ablaufen, die den Rückruf durcheinander bringen. Ich habe keine Ahnung, ob das funktioniert, aber es ist einen Versuch wert :) -Thomas

2voto

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

Über die Haltestelle: http://api.jquery.com/stop/

Außerdem habe ich Probleme mit Live- und Load-Ereignissen auf demselben Element gehabt (ich sage nicht, dass es das ist, was Ihr Problem hier verursacht).

Vielleicht ist es nicht angebracht, aber wenn Sie immer noch Probleme haben, versuchen Sie, das Live-Ereignis zu entfernen, bevor Sie die nächste Last binden. http://api.jquery.com/die/

Bearbeiten: Beachten Sie, dass es wahrscheinlich schlecht für die Leistung ist (die Live-Bindung ständig zu entfernen und neu hinzuzufügen). Ich meine nicht, tun dies die ganze Zeit, aber es kann helfen, Ihr Problem zu lokalisieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X