Enrico: Verbesserung/Optimierung/Fehlerbeseitigung einer Blätterfunktion

Beitrag lesen

Hallo und (nachträglich) schöne Weihnachten und noch einen bischen mehr als einen Weihnachtsfeiertag,

ich habe es jetzt endlich geschafft, mir eine halbwegs passable Blätterfunktion über Javascript zu
erstellen, einsehbar unter http://rapidshare.de/files/41211562/DVD-VERWALTUNG.zip.html

Hier der Code meiner Funktion:

function Blaetterfunktion_aufbauen (Seite)
   {
      /*
         Anzahl der Seiten ermitteln
      */

var Zaehler = 1;
      var Anzahl_Seiten = 1;

for (var i = 0; i < Anzahl_Filme_insgesamt; i++)
      {
         Zaehler += 1;

if (Zaehler == 30)
         {
            Anzahl_Seiten += 1;
            Zaehler = 1;
         }
      }

/*
         Indices des ersten und letzten anzuzeigenden Datensatzes ermitteln bei maximal 30 Filmen pro Seite
      */

var Von = (Seite - 1) * 30;
      var Bis = Von + 29;

if (Bis > Anzahl_Filme_insgesamt)
      {
         Bis = Anzahl_Filme_insgesamt;
      }

/*
         Seitenlinks aufbauen
      */

var Seitenlinks = "";

if (Seite - 1 <= 0)
      {
         Seitenlinks += '<span class="inaktiv"><span class="Rahmen_rechts">Vorherige Seite</span></span>';
      }
      else
      {
         Seitenlinks += '<a class="Schaltflaeche" href="javascript:void(0);" onclick="Seite_anzeigen (' + (Seite - 1) + '); this.blur();"><span>Vorherige Seite</span></a>';
      }

var Seitenlimit = 5;

for (var i=1; i <= Anzahl_Seiten; i++)
      {
         if (i == 1)
         {
            if (Seite == i)
            {
               Seitenlinks += '<span class="aktiv"><span class="Rahmen_rechts">' + i + '</span></span>';
            }
            else
            {
               Seitenlinks += '<a class="Schaltflaeche" href="javascript:void(0);" onclick="Seite_anzeigen (' + i + '); this.blur();"><span>' + i + '</span></a>';
            }

if (Seite > Seitenlimit)
            {
               Seitenlinks += '<span class="Auslassungszeichen">...</span>';
            }

continue;
         }

if ((i >= Seite -1) && (i <= Seite +1))
         {
            if (Seite == i)
            {
               Seitenlinks += '<span class="aktiv"><span class="Rahmen_rechts">' + i + '</span></span>';
            }
            else
            {
               Seitenlinks += '<a class="Schaltflaeche" href="javascript:void(0);" onclick="Seite_anzeigen (' + i + '); this.blur();"><span>' + i + '</span></a>';
            }

continue;
         }

if (i == Anzahl_Seiten)
         {
            if (i - Seite > 3)
            {
               Seitenlinks += '<span class="Auslassungszeichen">...</span>';
            }

if (Seite == i)
            {
               Seitenlinks += '<span class="aktiv"><span class="Rahmen_rechts">' + i + '</span></span>';
            }
            else
            {
               Seitenlinks += '<a class="Schaltflaeche" href="javascript:void(0);" onclick="Seite_anzeigen (' + i + '); this.blur();"><span>' + i + '</span></a>';
            }
         }
      }

if (Seite + 1 > Anzahl_Seiten - 1)
      {
         Seitenlinks += '<span class="inaktiv"><span class="Rahmen_rechts">Nächste Seite</span></span>';
      }
      else
      {
         Seitenlinks += '<a class="Schaltflaeche" href="javascript:void(0);" onclick="Seite_anzeigen (' + (Seite - 1) + '); this.blur();"><span>Nächste Seite</span></a>';
      }

var Blaetterfunktion = document.getElementById ("Blaetterfunktion");
          Blaetterfunktion.innerHTML = Seitenlinks;
   }

Ich bin mit der Funktionsweise noch nicht ganz zufrieden, zumal sie zwar fehlerfrei, aber keineswegs
bezüglich ihrer Funktionsweise schlüssig läuft und würde mich sehr freuen, wenn ihr sie euch näher
anschauen und mir Verbesserungsvorschläge machen würdet, auch um den Code noch schlanker zu gestalten,
was u.U. auch noch möglich sein dürfte.

Wenn ihr euch die index.html aufruft und die Ansichten sortiert, bitte nicht wundern, dass hier noch
sehr viele leere Datensätze auftauchen, aber ich habe mich die letzte Zeit nur auf die Erstellung
des Codes konzentriert.

Vielen Dank im Voraus und Gruß
Enrico