Bücher online kostenlos Kostenlos Online Lesen
JQuery Kochbuch (German Edition)

JQuery Kochbuch (German Edition)

Titel: JQuery Kochbuch (German Edition) Kostenlos Bücher Online Lesen
Autoren: jQuery Community Experts
Vom Netzwerk:
numerischen Wert auf andere Art und Weise darstellen.
    Das Plugin unterstützt noch zwei weitere Optionen, die wir in diesem Beispiel nicht genutzt haben:
    Option
animate: true
animiert den Handle, wenn er durch ein Klicken irgendwo im Slider an ein »Ziel« bewegt wird.
Option
orientation: vertical
zeigt anstelle eines horizontalen einen vertikalen Slider an.
    Es gibt noch ein paar weitere Events, die eine detailliertere Steuermöglichkeit bieten:
    start
wird aufgerufen, wenn das Verschieben beginnt.
stop
wird am Ende des Verschiebens aufgerufen.
change
wird aufgerufen, wenn das Verschieben beendet ist und sich der Wert des Sliders verändert hat. Dies ist besonders dann nützlich, wenn eine Änderung des Sliders eine teure Aktion auslöst, wie zum Beispiel das Abschicken einer Anfrage an den Server oder das Anpassen eines Graphen. Natürlich wird das Verhalten des Sliders dadurch weniger offensichtlich, da man dann beim Verschieben keine direkte Rückmeldung erhält.

Einen Wert eingeben, der innerhalb bestimmter Grenzen liegt
    Problem
    Ein Slider ist wunderbar dafür geeignet, grob Daten einzugeben und sie zu visualisieren, für exakte Werte hingegen ist er nicht so nützlich. Ein Beispiel wäre ein Pixel-Wert in einer Layout-Komponente, bei der der Wert in sehr kleinen Schritten verändert werden muss – Pixel für Pixel. Bei einem Standard-Eingabefeld muss die Tastatur genutzt werden – der aktuelle Wert wird gelöscht und ein neuer eingegeben, bei jedem Schritt.
    Lösung
    Das Spinner-Widget von jQuery UI kann dieses Problem lösen, indem es dem Eingabefeld Buttons für das Erhöhen und Verringern des Wertes hinzufügt. So kann man mit der Maus arbeiten, aber auch die Cursor-Tasten benutzen.
    Sie brauchen dazu nur ein normales Eingabefeld:

    Auf das wenden Sie dann das Spinner-Plugin an:
$("#value").spinner();
    Damit werden die Buttons für das Hoch- und Runterblättern erzeugt, platziert und die notwendigen Tastatur-Events hinzugefügt.
    Zudem wird die Eingabe auf numerische Werte beschränkt – gibt man im Spinner-Feld abc ein, dann wird dies beim Verlassen des Feldes durch den Standardwert ersetzt. Definiert man keinen eigenen, ist der Wert Null.
    Diskussion
    Das Plugin bietet ein paar Möglichkeiten an, die Eingabe weiter zu beschränken:
    min
setzt die untere Grenze, zum Beispiel −10 oder 100.
max
setzt die obere Grenze, zum Beispiel 10 oder 200.
stepping
gibt gewisse Sprungwerte vor, zum Beispiel 5. Standard ist 1.
    Wird der Spinner genutzt, um einen Währungsbetrag einzugeben, kann die Option
currency
genutzt werden, um das passende Symbol innerhalb des Eingabefeldes anzuzeigen.
    Das folgende Beispiel nutzt all diese Features und zeigt eine Form an, mit der Geld gespendet werden kann:






    Wir haben ein Select-Feld für die Währung und ein Texteingabefeld für den Betrag:
var currency = $("#currency").change(function() {
    $("#amount").spinner("option", "currency", $(this).val()).blur();
});
$("#amount").spinner({
    currency: currency.val(),
    min: 5,
    max: 1000,
    step: 5
});
    Wir binden ein Change-Event an das Währungs-Select-Feld, um die Option
currency
des Spinner-Feldes bei einer Auswahl der Währung anzupassen.
    Das Spinner-Feld selbst wird mit dem aktuellen Wert initialisiert, es werden aber auch Angaben für
min
,
max
und
step
gemacht und die Werte auf den Bereich von 5 bis 1.000 beschränkt, wobei immer nur in Fünferschritten erhöht werden kann.
    Integration mit Google Maps
    Der Wert kann auch eine Dezimalzahl sein, wofür man die Option
decimal
nutzen kann, um die Anzahl der Nachkommastellen festzulegen. Im folgenden Beispiel zeigen wir eine Google Map an und nutzen Spinner, um Länge und Breite anzugeben.
    Zunächst binden wir die API-Skripten von Google Maps ein:

    Dann können wir Markup für die Spinner und die eigentliche Karte sowie ein paar einfache Styles hinzufügen: