2010-12-06 22 views
2

Ich bin neu in jQuery also vergib mir (und korrigieren Sie mich auch bitte) wenn ich hier etwas falsch sagen.jQuery: Callback funktioniert nicht richtig

Ich habe diesen Code und der Rückruf ausgeführt wird rechts in dem Moment das Element geklickt wird, und nicht nach der slideUp beendet hat:

$('.close-button').click(function(){ 
    $('.click-menu div').slideUp(3000, function() { 
     $('.generic-box a, .generic-box p').css('z-index','1'); 
    });  
}); 

bin ich etwas fehlt?

Jede Hilfe würde sehr geschätzt werden.

Danke.

Antwort

7

Was wahrscheinlich passiert, ist, dass alle bereits versteckt <div> Elemente sofort den Rückruf ausgeführt wird, da ihre Animationen sofort vollständig zu verbergen, können Sie dies vermeiden, indem nur :visible Schiebeelemente auf, wie folgt aus:

$('.close-button').click(function(){ 
    $('.click-menu div:visible').slideUp(3000, function() { 
     $('.generic-box a, .generic-box p').css('z-index','1'); 
    });  
}); 
+0

+1 Ein wenig off-topic, aber vielleicht auch wert, darauf hinzuweisen, dass der Callback einmal * pro übereinstimmendes Element * ausgelöst wird, was hier eine überflüssige Übung zu sein scheint. – user113716

+1

Arbeitete wie ein Charme! Nochmals vielen Dank Nick, und Ihre Erklärungen sind auch sehr hilfreich. –

+0

@Ricardo - willkommen :) @patrick - definitiv gut zu beachten, wenn dies nicht die eins-zu-eins sichtbaren Situationen sind, können Sie sehr gut einen anderen Ansatz wollen. –

0

die No Rückruf Anruf, sobald die Animation abgeschlossen ist

Sie die jquery Dokumentation verwenden können es wirklich hilfreich ist

http://api.jquery.com/slideUp/

+2

Ich glaube nicht, dass das die Frage war ... es passiert sofort, der OP fragt * warum * es passiert sofort. –

+2

ja, und sein Code stimmt perfekt mit der Dokumentation überein. Er fragt sich, WARUM der Callback sofort anruft, er weiß, dass Callback erst einmal abgeschlossen sein sollte. –

+0

Richtig, ich wusste nicht, warum es sofort ausgeführt wurde, bis Nick's Antwort :) –

Verwandte Themen