|
|||
Mhhh, das Beispiel verstehe ich jetzt nicht.
Ich werde die Seite mal hochladen, aber nicht mehr heute - muss erst alles einrichten. Mein Kopf ist jetzt auch kurz vorm explodieren, brauche mal ne Pause. Auf jeden Fall aber erst mal ein ganz großes DANKE |
Sponsored Links |
|
|||
Zitat:
Ich habe mein Script jetzt soweit hinbekommen, dass es eigentlich funktionieren solle: Code:
$(document).ready(function(){ var i; for (i = 97; i < 101; i++) { $("li a.overflow[data-select=" + i + "]").css({"display" : "block" , "opacity" : "1"}); } zaehler = 97; var counter = new Array(); $( "a.verk_bM_Liste_next" ).on( "click", function() { var ArtNr = $(this).attr("data-ArtNr"); if(counter.some(item => item.Nr === ArtNr)){ $.each( counter, function() { if (this.Nr == ArtNr) { this.Zaehler = zaehler; } }); } else{ counter.push({ Nr: ArtNr, Zaehler: 97 }); }; for (var i = 0, theindex = -1; i < counter.length && theindex == -1; i++) { if (counter[i].Nr == ArtNr) { theindex = i; } } zaehler = counter[theindex].Zaehler; console.log(zaehler); var anzahl = $("ul#UL_" + ArtNr).children().length; // zählen der Listeneinträge var slides = anzahl / 4; if (zaehler < anzahl + 93){ for (i = zaehler; i < zaehler + 4; i++) { $("ul#UL_" + ArtNr + " li a.overflow[data-select=" + i + "]").css({"display" : "none" , "opacity" : "0"}); } zaehler = zaehler + 4; for (i = zaehler; i < zaehler + 4; i++) { $("ul#UL_" + ArtNr + " li a.overflow[data-select=" + i + "]").css({"display" : "block" , "opacity" : "1"}); } } }); $("a.verk_bM_Liste_prev").on("click", function(){ var ArtNr = $(this).attr("data-ArtNr"); Array.push(ArtNr); first = Array.shift(); if(Array != first) {zaehler = 97}; var anzahl = $("ul#UL_" + ArtNr).children().length; // zählen der Listeneinträge var slides = anzahl / 4; if (zaehler > 100){ // 105 for (i = zaehler; i < zaehler+5; i++) { $("ul#UL_" + ArtNr + " li a.overflow[data-select=" + i + "]").css({"display" : "none" , "opacity" : "0"}); } zaehler = zaehler-1; //104 for (i = zaehler; i > zaehler-4; i--) { $("ul#UL_" + ArtNr + " li a.overflow[data-select=" + i + "]").css({"display" : "block" , "opacity" : "1"}); } } if(zaehler > 99){ zaehler = zaehler-3; } }); }); |
Sponsored Links |
|
|||
Zitat:
Das die Codes so kompliziert sind liegt daran, dass ich immer nur Stückwerk mache - da eine Code-Zeile und da noch eine usw. Mir fehlt der Überblick über das gesamte Sctipt, aber das liegt daran, dass mein Gehirn für diese Aufgabe eigentlich nicht geschaffen wurde, ich es aber trotzdem unbedingt machen will. Ist mir damals schon bei PHP aufgefallen. Aber ich denke (und hoffe), so gaaaanz langsam wird es besser werden. Ich habe jetzt erst mal die Seite hochgeladen: https://bit.ly/2QlSOAn |
|
|||
Okay, ich habe das Script jetzt mal ein wenig aufgeräumt und kommentiert. Ich hoffe, es wird dadurch verständlicher.
Der erste Teil, also die Klicks nach rechts, funktionieren. Nun habe ich aber das Problem, dass ich das Array "counter" auch für die Klicks nach links nutzen muss, das geht aber nicht, weil es innerhalb einer Funktion entsteht (wenn ich da richtig gegoogelt habe). Wie kann ich dieses Array also in eine neue Funktion übergeben? Wenn Du eine ganz andere Idee hast, bin ich auch dankbar. Code:
$(document).ready(function(){ // Die Seite wird geladen und alle Slider gefüllt for (i = 97; i < 101; i++) { $("li a.overflow[data-select=" + i + "]").css({"display" : "block" , "opacity" : "1"}); } counter = new Array(); // Bei Klick nach rechts $( "a.verk_bM_Liste_next" ).on( "click", function() { var ArtNr = $(this).attr("data-ArtNr"); // Hier wird geprüft ob eine ArtNr bereits im Array enthalten ist // Wenn ja wird der entsprechende Zähler aktualisiert if(counter.some(item => item.Nr === ArtNr)){ $.each( counter, function() { if (this.Nr == ArtNr) { this.Zaehler = zaehler; } }); } // Ist die ArtNr noch nicht enthalten wird sie eingetragen und der Zähler auf 97 gesetzt else{ counter.push({ Nr: ArtNr, Zaehler: 97 }); zaehler = 97; }; var anzahl = $("ul#UL_" + ArtNr).children().length; // zählen der Listeneinträge var slides = anzahl / 4; // Der eigentliche Slider if (zaehler < anzahl + 93){ for (i = zaehler; i < zaehler + 4; i++) { $("ul#UL_" + ArtNr + " li a.overflow[data-select=" + i + "]").css({"display" : "none" , "opacity" : "0"}); } zaehler = zaehler + 4; for (i = zaehler; i < zaehler + 4; i++) { $("ul#UL_" + ArtNr + " li a.overflow[data-select=" + i + "]").css({"display" : "block" , "opacity" : "1"}); } } }); console.log(count); // Klick nach rechts FUNKTIONIERT NOCH NICHT $("a.verk_bM_Liste_prev").on("click", function(){ var ArtNr = $(this).attr("data-ArtNr"); var anzahl = $("ul#UL_" + ArtNr).children().length; // zählen der Listeneinträge var slides = anzahl / 4; if (zaehler > 100){ // 105 for (i = zaehler; i < zaehler+5; i++) { $("ul#UL_" + ArtNr + " li a.overflow[data-select=" + i + "]").css({"display" : "none" , "opacity" : "0"}); } zaehler = zaehler-1; //104 for (i = zaehler; i > zaehler-4; i--) { $("ul#UL_" + ArtNr + " li a.overflow[data-select=" + i + "]").css({"display" : "block" , "opacity" : "1"}); } } if(zaehler > 99){ zaehler = zaehler-3; } }); }); Geändert von KATERchen (28.11.2018 um 13:19 Uhr) |
|
|||
Die richtige Adresse: TEST.PHP
Ist ja auch egal, Denic gibt die Daten ja nicht mehr raus. Im Großen und Ganzen funktioniert es jetzt, so richtig aber leider immer noch nicht. Wenn man zwischen den Slidern hin und her klickt, stocken sie irgendwann. Hab das aber auch gerade erst festgestellt und noch nicht weiter geguckt. Auch der Code vom Script lässt sich sicher noch etwas vereinfachen. Es gibt noch ein Script für das Menü und eins für die Lightbox mit Slider. |
|
|||
So, jetzt funktioniert es - hoffe ich.
Code:
counter = new Array(); $(document).ready(function(){ // Die Seite wird geladen und alle Slider gefüllt for (i = 1; i < 5; i++) { $("li a.overflow[data-select=" + i + "]").css({"display" : "block" , "opacity" : "1"}); } // Bei Klick nach rechts $( "a.verk_bM_Liste_next" ).on( "click", function() { var ArtNr = $(this).attr("data-ArtNr"); // Hier wird geprüft ob eine ArtNr bereits im Array enthalten ist // Wenn ja wird der entsprechende Zähler aktualisiert if(counter.some(item => item.Nr === ArtNr)){ $.each( counter, function() { if (this.Nr == ArtNr) { this.Zaehler = zaehler; } }); } // Ist die ArtNr noch nicht enthalten wird sie eingetragen und der Zähler auf 97 gesetzt else{ counter.push({ Nr: ArtNr, Zaehler: 1 }); zaehler = 1; }; var anzahl = $("ul#UL_" + ArtNr).children().length; // zählen der Listeneinträge var slides = anzahl / 4; // Der eigentliche Slider if (zaehler < anzahl-4){ for (i = zaehler; i < zaehler + 4; i++) { $("ul#UL_" + ArtNr + " li a.overflow[data-select=" + i + "]").css({"display" : "none" , "opacity" : "0"}); } zaehler = zaehler + 4; for (i = zaehler; i < zaehler + 4; i++) { $("ul#UL_" + ArtNr + " li a.overflow[data-select=" + i + "]").css({"display" : "block" , "opacity" : "1"}); } console.log(zaehler); $.each( counter, function() { if (this.Nr == ArtNr) { this.Zaehler = zaehler; } }); console.log(counter); } }); // Klick nach rechts $("a.verk_bM_Liste_prev").on("click", function(){ var ArtNr = $(this).attr("data-ArtNr"); console.log(counter); var ArtNr = $(this).attr("data-ArtNr"); var anzahl = $("ul#UL_" + ArtNr).children().length; // zählen der Listeneinträge var slides = anzahl / 4; if (zaehler > 3){ // 105 for (i = zaehler; i < zaehler+5; i++) { $("ul#UL_" + ArtNr + " li a.overflow[data-select=" + i + "]").css({"display" : "none" , "opacity" : "0"}); } zaehler = zaehler-1; //104 for (i = zaehler; i > zaehler-4; i--) { $("ul#UL_" + ArtNr + " li a.overflow[data-select=" + i + "]").css({"display" : "block" , "opacity" : "1"}); } } if(zaehler > 3){ zaehler = zaehler-3; } // Aktueller Zähler wird bei der ArtNr aktualisiert if(counter.some(item => item.Nr === ArtNr)){ $.each( counter, function() { if (this.Nr == ArtNr) { this.Zaehler = zaehler; } }); } // Ist die ArtNr noch nicht enthalten wird sie eingetragen und der Zähler auf 4 gesetzt else{ counter.push({ Nr: ArtNr, Zaehler: 5 }); Zaehler= 5 }; console.log(zaehler); }); }); |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Button auf Standard zurücksetzen? | tscho | CSS | 10 | 27.02.2012 18:40 |
Besucher Zähler einbinden | Georges974 | (X)HTML | 2 | 03.05.2009 22:36 |
Problem mit auto-increment: Will eine Lücke in den IDs Füllen ohne Zähler zu erhöhen | braindead | Serveradministration und serverseitige Scripte | 5 | 17.09.2007 16:48 |
CSS-Eigenschaften auf default-Werte zurücksetzen | vladivar | CSS | 1 | 06.09.2007 13:00 |
Zähler | Despairing | Serveradministration und serverseitige Scripte | 6 | 08.08.2007 22:24 |