RSS Feed

Expandable List Javascript – jQuery Plugin

28.08.2009 by naden

Dieses jQuery Plugin wandelt eine mit <ul> erzeugte Liste in eine dynamische Variante um, die man auf und zu klappen kann. Dadurch können sehr große Listen (z.B. verlinkte Tags) mit einigen Einträgen angeteasert und bei Klick auf mehr um die restlichen Einträge erweitert werden. Die Liste ist komplett HTML und somit auch spiderbar. Zudem ist kein zusätzliches CSS für die Darstellung nötig.

Um alle Listen umzuwandeln reicht der folgende Aufruf:

$('ul').expandablelist();

Aus

<ul>
  <li>Item #1</li>
  <li>Item #2</li>
  <li>Item #3</li>
  ...
  <li>Item #N</li>
</ul>

wird dadurch:

<ul>
  <li>Item #1</li>
  <li>Item #2</li>
  <li><a href="">more</a></li>
  <li>Item #3</li>
  ...
  <li>Item #N</li>
  <li><a href="">less</a></li>
</ul>

Um eine bestimmte Listen umzuwandeln:

$('#mylist').expandablelist();

Das ist die simpelste Variante. Das Plugin bringt eine Fülle an Konfigurationsmöglichkeiten mit, die auch global gesetzt werden können.

Mögliche Parameter und deren Standardwerte:

Name Standardwert Beschreibung
count 2 breche nach X Einträgen um
expanded false Darstellung der Liste
moreText ‘more’ Text der “more” Buttons
lessText ‘close’ Text des “close” Buttons
onClick function(item, action, flag) {} callback, wird 4 mal aufgerufen
item: Aufrufendes Element als this, action: ‘more’ oder ‘less’, flag: 0 vor der Aktion, 1 nach der Aktion
moreClassA classname des “more” Buttons
lessClassA classname des “close” Buttons
moreClassLi classname des “more” Buttons umschliessende <li>
lessClassLi classname des “close” Buttons umschliessende <li>

Paramater übergeben

$('ul').expandablelist({count:3});

Liste wird bricht ab dem 3. Eintrag um.

$('ul').expandablelist({expanded:true});

Liste wird ausgeklappt angezeigt.

$('ul').expandablelist({moreText:'mehr anzeigen', lessText:'schliessen'});

Liste mit angepassten Button-Texten

Paramater global setzen
Um einen Wert global zu setzen, z.B. den classname für die Links, geht man wie folgt vor. Das muss noch vor dem ersten Aufruf von $().expandablelist(); geschehen.

$.fn.expandablelist.defaults.moreClassA = 'funky';
$.fn.expandablelist.defaults.lessClassA = 'funky';

Links:
Demo
Download minified
Download source


1 Kommentar »

  1. Cyborg sagt:

    Ganz fachmännisch geschrieben — unsere Anerkennung.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>