JQuery: Unterschied zwischen den Versionen
(→Links) |
|||
| (6 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
| Zeile 8: | Zeile 8: | ||
== Links == | == Links == | ||
| + | [[jQuery or Vanilla JS]] | ||
Elemente auswählen: http://docs.jquery.com/DOM/Traversing/Selectors | Elemente auswählen: http://docs.jquery.com/DOM/Traversing/Selectors | ||
| Zeile 29: | Zeile 30: | ||
===Über Google=== | ===Über Google=== | ||
| − | Hinweis: Google gibt an man solle zuerst den API Code übergeben damit es funktioniert. Der direkte Zugriff funktioniert aber auch ohne. Vielleicht geht es nicht wenn man die google. load Funktion nutzt (hier nicht weiter behandelt) | + | |
| + | Hinweis: Google gibt an man solle zuerst den API Code übergeben damit es funktioniert (Obsolet). Der direkte Zugriff funktioniert aber auch ohne. Vielleicht geht es nicht wenn man die google. load Funktion nutzt (hier nicht weiter behandelt) . | ||
Beispiel API Code Übergabe: | Beispiel API Code Übergabe: | ||
| Zeile 67: | Zeile 69: | ||
// do stuff when DOM is ready | // do stuff when DOM is ready | ||
}); | }); | ||
| + | |||
| + | Stiftet manchmal Verwirrung. Es gibt einige Möglichkeiten in der Syntax für den ready handler: | ||
| + | <syntaxhighlight lang="javascript"> | ||
| + | $( handler ) | ||
| + | $( document ).ready( handler ) | ||
| + | $( "document" ).ready( handler ) | ||
| + | $( "img" ).ready( handler ) | ||
| + | $().ready( handler ) | ||
| + | |||
| + | </syntaxhighlight> | ||
| + | |||
| + | === Document ready oder window ready ? === | ||
| + | $(document).ready... wartet bis alle Elemente im HTML soweit geladen sind und startet mit der Ausführung der Skripte. Bilder etc. werden im Laufe der Zeit nachgeladen. Soll die Ausführung auf die Bilder warten geht das anders: | ||
| + | <syntaxhighlight lang="javascript"> | ||
| + | $(document).ready(function() { | ||
| + | // wait til DOM is ready and do s.th. | ||
| + | }); | ||
| + | </syntaxhighlight> | ||
| + | <syntaxhighlight lang="javascript"> | ||
| + | $(window).on("load", function() { | ||
| + | // wait till everything (inkl. Images) is loaded and do s.th. | ||
| + | }); | ||
| + | </syntaxhighlight> | ||
== Reagieren auf Klick == | == Reagieren auf Klick == | ||
| Zeile 120: | Zeile 145: | ||
== Elemente manipulieren, hinzufügen, entfernen == | == Elemente manipulieren, hinzufügen, entfernen == | ||
| + | === jQuery - Animation === | ||
| + | [[jQuery - Animation]] | ||
== Weitere Funktionen == | == Weitere Funktionen == | ||
| Zeile 134: | Zeile 161: | ||
== AJAX == | == AJAX == | ||
[[jQuery - AJAX]] | [[jQuery - AJAX]] | ||
| + | |||
| + | == Funktionen in jQuery definieren (5 Wege) == | ||
| + | [[Funktionen in jQuery]] | ||
== Weitere Beispiele == | == Weitere Beispiele == | ||
Aktuelle Version vom 3. September 2022, 09:43 Uhr
Quickstart[Bearbeiten]
http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery
Gut durchlesen, hier werden die meisten Basics angesprochen.
Links[Bearbeiten]
jQuery or Vanilla JS
Elemente auswählen: http://docs.jquery.com/DOM/Traversing/Selectors
Ereignisse: http://docs.jquery.com/Events
Gute Tools out of the Box: Erste Wahl mit allem was man so braucht sind die jQuery Tools:
http://flowplayer.org/tools/index.html
Oder in Kurzform hier: JQuery Tools (flowplayer.org)
Validierung mit jQuery: Validate (jQuery Plugin)
Einbinden[Bearbeiten]
Es gibt die Core Datei und einige nützliche Erweiterungen die man sich passend zusammestellen kann um die Download Größe klein zu halten. Außerdem gibt es gepackte Versionen.
Über Google[Bearbeiten]
Hinweis: Google gibt an man solle zuerst den API Code übergeben damit es funktioniert (Obsolet). Der direkte Zugriff funktioniert aber auch ohne. Vielleicht geht es nicht wenn man die google. load Funktion nutzt (hier nicht weiter behandelt) .
Beispiel API Code Übergabe:
<script type="text/javascript" src="https://www.google.com/jsapi?key=INSERT-YOUR-KEY"></script>
Beispiel:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
ui steht für User Interface (Plugins)
Über jQuery Server[Bearbeiten]
Beispiel:
<script src="http://code.jquery.com/jquery-latest.js"></script>
Libary auf eigenem Server[Bearbeiten]
Geo-bit webmynet[Bearbeiten]
ToDo -> Idee ist verschiedene libs auf tools.webmynet.de vorzuhalten ähnlich wie sie auf dem Google Server liegen. Zweck: einfache Einbindung, Statistik, Testing
Typo3[Bearbeiten]
siehe JavaScript Frameworks nutzen
Der Beginn[Bearbeiten]
In der Regel soll es losgehen, sobald das Dokument geladen ist (weil dies für manche Manipulationen notwendig ist) Deshalb beginnt man i.d.R. mit einem Onload Event:
$(document).ready(function() {
// do stuff when DOM is ready
});
Oder Abgekürzt
$(function() {
// do stuff when DOM is ready
});
Stiftet manchmal Verwirrung. Es gibt einige Möglichkeiten in der Syntax für den ready handler:
$( handler )
$( document ).ready( handler )
$( "document" ).ready( handler )
$( "img" ).ready( handler )
$().ready( handler )
Document ready oder window ready ?[Bearbeiten]
$(document).ready... wartet bis alle Elemente im HTML soweit geladen sind und startet mit der Ausführung der Skripte. Bilder etc. werden im Laufe der Zeit nachgeladen. Soll die Ausführung auf die Bilder warten geht das anders:
$(document).ready(function() {
// wait til DOM is ready and do s.th.
});
$(window).on("load", function() {
// wait till everything (inkl. Images) is loaded and do s.th.
});
Reagieren auf Klick[Bearbeiten]
Siehe auch:
$(document).ready(function() {
$("a").click(function() {
alert("Hello world!");
});
});
$("a")
bedeutet Das was jetzt kommt gilt für alle Links
.click()
es soll bei Klick etwas passieren
Früher hat man das so gelöst:
<a href="" onclick="alert('Hello world')">Link</a>
Das funktioniert, allerdings muß man hier bei jedem Link den Schnipsel einfügen.
Zugriff auf Elemente[Bearbeiten]
Old School:
document.getElementById("orderedlist")
Mit JQuery analog zu obigem Beispiel
$(document).ready(function() {
$("#orderedlist").addClass("red");
});
Hier wird noch eine Klasse eingebaut
Weitere Beispiele:
$("#orderedlist > li")
Alle Listenelemente unterhalb #orderedlist
#orderedlist li:last
Hier ist nur das letzte Listenelement gemeint.
$(document).ready(function() {
$("#orderedlist li:last").hover(function() {
$(this).addClass("green");
},function(){
$(this).removeClass("green");
});
});
Die Hoverfunktion kann zwei Funktionen als Parameter aufnehmen.
Elemente manipulieren, hinzufügen, entfernen[Bearbeiten]
jQuery - Animation[Bearbeiten]
Weitere Funktionen[Bearbeiten]
find() addClass() removeClass() hover() each() append()
Ereignisse[Bearbeiten]
AJAX[Bearbeiten]
Funktionen in jQuery definieren (5 Wege)[Bearbeiten]
Weitere Beispiele[Bearbeiten]
// Find some li s and append Text
$("#orderedlist").find("li").each(function(i) {
$(this).append( " BAM! " + i );
});
$("a[href*=/content/gallery]").click(function() {
// do something with all links that point somewhere to /content/gallery
});
// use this to reset a single form
$("#reset").click(function() {
$("form")[0].reset();
});
// use this to reset several forms at once
$("#reset").click(function() {
$("form").each(function() {
this.reset();
});
});
// Find li elements that does NOT have a parent ul
$(document).ready(function() {
$("li").not(":has(ul)").css("border", "1px solid black");
});
// Find elements with a name attribute
$(document).ready(function() {
$("a[name]").css("background", "#eee" );
});
// Grab the parent
$("a").hover(function(){
$(this).parents("p").addClass("highlight");
},function(){
$(this).parents("p").removeClass("highlight");
});
Testen ob jQuery geladen ist[Bearbeiten]
Testen ob geladen, wenn nicht von google holen, wenn nicht verfügbar lokale Version nehmen
jQuerySrc = 'fileadmin/js/jquery-min.js';
// only load jQuery if not present
if (typeof jQuery == 'undefined') {
document.write("<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\"></"+"script>");
}
// if Google is down
if (typeof jQuery == 'undefined') {
document.write("<script type=\"text/javascript\" src=\"" + jQuerySrc + "\"></"+"script>");
}