In „[post id=“2884″][/post]“ habe ich gezeigt, wie man ganz einfach ein eigenes jQuery Plugin schreiben kann. Aus Speicherplatzgründen empfiehlt es sich aber Plugins, die mehrfach instanziiert werden, mit einem Prototypen anzulegen. Wie das funktioniert, soll folgender Code exemplarisch zeigen.
jQuery Plugin mit Prototyp und destroy()-Funktion weiterlesen
Schlagwort: Prototype
Get key by value mit JavaScript
Um von einem Wert (value) den zugehörigen Schlüssel (key) in einem JavaScript-Objekt zu finden, ist folgender Code hilfreich:
Get key by value mit JavaScript weiterlesen
Erweiterung von JavaScript-Objekten
Möchte man Objekte von JavaScript erweitern, kommt man um das Prototyping nicht herum. Prototyping beinhaltet weitaus mehr als nur die Erweiterung einer Klasse, doch dazu an anderer Stelle mehr. Erstmal möchte ich zeigen, wie man für die „String“-Klasse in JavaScript eine neue Funktion, die nur einen Auszug (engl. excerpt) von einem Text anzeigt, hinzufügt.
Erweiterung von JavaScript-Objekten weiterlesen
Ajax.Autocompleter mit scriptaculous
Autovervollständigungen erleichtern dem Benutzer die Eingabe und sehen zudem sehr schick aus. Eine Möglichkeit um Autocomplete zu realisieren ist die Verwendung von scriptaculous.
Dabei müssen folgende Regeln beachtet werden:
- Zuerst „Prototype“ im head-Bereich einbinden
- Danach „script.aculo.us“ im head-Bereich einbinden
- Dem, für die Autocompletion gewünschten, Textfeld eine ID zuweisen
- Einen leeren DIV-Container mit ID für die Autocomplete-Ergebnisse erstellen
- Liste für die Werte zur Vervollständigung erstellen
- Den new Ajax.Autocompleter(...)-Aurfruf im body-Tag (!) durchführen
Bei Nichteinhaltung kann es zum Fehler this.element is null in control.js (Zeile 53) bei this.oldElementValue = this.element.value; kommen.
Ein weiterer beliebter Fehler ist Ajax.Autocompeter is not a constructor. Dieser Fehler basiert im Wesentlichen darauf, dass die Abhängigkeiten nicht gefunden wurden.
Die häufigsten Gründe dafür sind:
- prototype.js und/oder scriptaculous.js wurden nicht eingebunden
- prototype.js wurde nicht vor scriptaculous.js eingebunden
- scriptaculous.js befindet sich ohne abhängige Includes (z.B. control.js) auf dem Server
- Das DOM ist nicht valide