2016-03-31 28 views
0
var J_lis = $("#Jerseybox ul li img"); 
var count_jersey = 0 
J_lis.hide(); 
J_lis.each(function(g) { 
    $(this).delay((g + 1) * 360).fadeIn(); 
    count_jersey++; 
}); 

ich benutze $ .Each, um es fadeIn Bild eins nach dem anderen zu machen, mit diesem Code, aber gibt es sowieso ich könnte letztes Bild fadeIn wissen?Letztes Bild fertig fadeIn

mein Ziel ist es, diese Bilder fadeIn nacheinander zu machen, und wenn das letzte Bild fertig ist, werde ich etwas entfernen.

Wie überprüfe ich das letzte Bild fertig fadeIn?

+0

Mögliches Duplikat [Letztes Element in .each (es)] (http://stackoverflow.com/questions/4006822/last-element-in-each-set) –

+0

Vergleich 'g' zu' J_lis.length'. –

Antwort

-1

Man könnte so etwas wie tun:

var J_lis = $("#Jerseybox ul li img"); 
var count_jersey = 0 
J_lis.hide(); 
J_lis.each(function(g) { 
//after fadeIn, increase counter 
//and check for g == J_lis.length 
$(this).delay((g + 1) * 360).fadeIn('fast', function(){ 
    counter_jersey++; 
    //if last image is finished 
    if(g == J_lis.length){ 
    //do something 
    } 
}); 
}); 

Ich weiß nicht, warum Sie counter_jersey brauchen, aber ich es trotzdem enthalten.

+0

Ich habe versucht, aber das Bild immer noch FadeIn, vielleicht ist, weil die Verzögerung ich füge. – darkness

+0

ich meine die count_jersey == J_lis.length ist bereits Trigger, aber das Image hat immer noch fadeIn fertig, ich denke, ist wegen der Verzögerung. Ich muss sicherstellen, dass das letzte Image fadeIn beendet, dann kann ich auslösen, um etwas zu entfernen. – darkness

+0

Es ist nicht wegen der Verzögerung, versuchen Sie den Code, den ich jetzt geschrieben habe, sollte funktionieren. – Devplex

1

Wenn Sie Code ausführen direkt nach jedem Sie müssen es tun, wie so:

Wir überprüfen die Länge des Arrays Sie durch Looping, wenn sie die die gleiche wie die Länge des Arrays, Du bist am Ende!

Keine Notwendigkeit, count_jersey jetzt entweder zu verwenden.

var J_lis = $("#Jerseybox ul li img"); 
J_lis.hide(); 
J_lis.each(function(g) { 
    $(this).delay((g + 1) * 360).fadeIn(); 
    if (g === J_lis.length - 1) { 
    // here you have your last image! 
    } 
}); 
+0

hmm es hat funktioniert, ich versuchte console.log zu verwenden, um zu überprüfen, show. – darkness

+0

danke auch ~ habe einen tollen Tag Freund. – darkness

+0

können Sie dies als die richtige Antwort markieren? Der obige Code ist immer noch falsch, könnte Leute irreführen. Falsch wie in, die Änderung, die Sie machen mussten, um es zur Arbeit zu bringen, ist bereits in meiner Antwort – JordanHendrix