Ich versuche, die Funktionalität für Schaltflächen, die ich gemacht habe, zu loopen. Ich habe 3 Videosammlungen. und sie alle brauchen das gleiche Skript für das nächste und das vorherige.Wie würde ich das in loop?
Was ich will ist, dass ich nur einen nächsten Knopf und einen vorherigen Knopf machen muss. Dies ist, was es tun soll:
$("#next-1").click(function(){
\t \t var $this = $(".video-album-1");
\t \t callback = function() {
\t \t $this.insertBefore($this.siblings(':eq(2)'));
\t }
\t $this.fadeOut(200, callback).fadeIn(400);
\t });
\t $("#prev-1").click(function(){
\t \t var $this = $(".video-album-1");
\t \t callback = function() {
\t \t $this.insertAfter($this.siblings(':eq(3)'));
\t }
\t $this.fadeOut(200, callback).fadeIn(400);
\t });
\t $("#next-2").click(function(){
\t \t var $this = $(".video-album-2");
\t \t callback = function() {
\t \t $this.insertBefore($this.siblings(':eq(2)'));
\t }
\t $this.fadeOut(200, callback).fadeIn(400);
\t });
\t
\t $("#prev-2").click(function(){
\t \t var $this = $(".video-album-2");
\t \t callback = function() {
\t \t $this.insertAfter($this.siblings(':eq(3)'));
\t }
\t $this.fadeOut(200, callback).fadeIn(400);
\t });
ich bereits Schleife versucht haben, aber das funktioniert nicht:
for (i = 0; i < 3; i++) {
\t $("#next-"+i).click(function(){
\t \t var $this = $(".video-album-"+i);
\t \t callback = function() {
\t \t $this.insertBefore($this.siblings(':eq(2)'));
\t }
\t $this.fadeOut(200, callback).fadeIn(400);
\t });
\t $("#prev-"+i).click(function(){
\t \t var $this = $(".video-album-"+i);
\t \t callback = function() {
\t \t $this.insertAfter($this.siblings(':eq(3)'));
\t }
\t $this.fadeOut(200, callback).fadeIn(400);
\t });
}
Kann mir jemand eine Lösung geben? Ich möchte nicht wiederholt # Next-3 # Next-4-IDs usw. erstellen.
Vielen Dank im Voraus.
[Dies] (http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) Deshalb hat dein Versuch nicht funktioniert, aber ich bezeichne das nicht als doppelte Frage, denn während die Antworten dort antworten würden (was das übliche Kriterium ist), gibt es * bessere * Antworten für dieses spezielle Problem. –
Bitte fügen Sie auch Ihren HTML-Code hinzu. Im Idealfall fügen Sie ein ausführbares Beispiel mit Stack Snippets hinzu (der '<>' Symbolleistenschaltfläche). (Sie haben das für Ihre Codebausteine verwendet, aber nicht richtig; für nur Codebausteine möchten Sie den '{}' Knopf. Aber '<>' läßt Sie das Beispiel laufen lassen.) –
Es sei denn, ich verstehe Sie nicht in die falsche Richtung gehen, um zu tun, was du willst. Anstatt mehrere Ereignisse zu erstellen, sollten Sie Ihrer Schaltfläche Klassennamen geben und Ihre Klickereignisse gegen die Klasse –