PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Javascript Problem (kompletter Anfänger)
Beitrag
<blockquote data-quote="Duddle" data-source="post: 2315561" data-attributes="member: 17775"><p>Erstens: vergib IDs nicht mehrfach, das ist eine sehr nützliche Konvention. Sollen mehrere Elemente in HTML gleich angezeigt werden, weist du ihnen eine Klasse zu und sprichst diese an. Das gleiche gilt für jQuery: vergib und <a href="http://api.jquery.com/class-selector/" target="_blank">selektiere eine Klasse</a>, wenn du mehreren Elementen ein gleiches Verhalten zuweisen willst.</p><p></p><p>Algorithmen/Funktionen sollten wiederverwendbar sein, das merkst du ja selbst. Dafür musst du sie abstrahieren, also allgemeiner schreiben. Der direkteste Schritt dahin ist die <a href="http://de.wikipedia.org/wiki/Parameter_%28Informatik%29" target="_blank">Parametrisierung der Funktion</a>, also das Nutzen von Funktionsparametern zur Steuerung des Algorithmus. Ein Beispiel davon hast du schon selbst in deinem Code:[HTML]</p><p>$.get("test.txt", function(text){</p><p> $("p:first").fadeOut('fast',function(){</p><p> $("p:first").html(text).fadeIn('normal'); }</p><p> );</p><p>});</p><p>[/HTML]</p><p>Hier gibst du der Callback-Funktion von $.get() den Parameter <em>text</em> mit, welcher dann als Variable im Funktionskörper vorhanden ist. Übergibst du anderen Text in <em>text</em> (der Inhalt kommt ja aus der geholten URL, bspw. "test.txt"), verhält sich der Rest der Funktion anders.</p><p></p><p>Um das jetzt konkreter zu machen, du möchtest genau die genannte Stelle verallgemeinern. Das heißt, du ersetzt "test.txt" durch eine Variable. Diese Variable füllst du vorher mit den notwendigen Informationen und schon ist dieser Teil der Funktion verallgemeinert und kann mehrfach verwendet werden. Jetzt musst du nur noch festlegen, woher diese notwendige Information kommt - irgendwo muss ja stehen, ob der Link für "test.txt" oder "foo.html" oder "bar.css" gilt.</p><p>Ein Weg wäre, es als <em>href</em> des Links zu setzen, diesen dann auszulesen und in der o.g. neuen Variable für $.get() zu speichern. Das würde dann auch bewirken, dass Nutzer ohne JS an die verlinkten Dokumente kommen.</p><p></p><p>Ein anderer Weg wird neuerdings häufiger in Form von <a href="http://ejohn.org/blog/html-5-data-attributes/" target="_blank">"data-"-Attributen</a> genommen. Diese geben dir die Möglichkeit, zusätzliche Informationen standardkonform in ein Element zu bringen. Diese eigenen Attribute kannst du dann ebenfalls mit jQuery via <a href="http://api.jquery.com/data/" target="_blank">.data()</a> auslesen und benutzen.</p><p></p><p></p><p>Das $-Zeichen ist nur eine Variable für das jQuery-Objekt. Du kannst jedes $ problemlos mit jQuery ersetzen und das Script funktioniert. Dieses Objekt bietet die vielen Funktionen (bzw. "Methoden" im Kontext einer Klasse) an, die du benutzt.</p><p></p><p><u>Variablen</u> selbst werden in jQuery-Scripten oft mit $ begonnen, wenn hinter der Variable ein jQuery-Objekt steckt. Machst du bspw. [HTML]$("#foobar");[/HTML]gibt diese Funktion ein jQuery-Objekt zurück. Würde ich dieses speichern wollen, würde ich [HTML]var $myFoobar = $("#foobar");[/HTML] schreiben, aber [HTML]var myFoobar = $("#foobar");[/HTML] funktioniert exakt gleich.</p><p></p><p>Dein <em>e</em> in der Funktion ist der Parameter (siehe oben) für die Funktion und wird automatisch mit dem auslösenden <u>E</u>vent gefüllt. Wenn du <em>e</em> umbennen willst, muss das auch im Parameter passieren. Die .preventDefault()-Funktion kommt auch nicht ursprünglich von jQuery, sondern JavaScript selbst. Das <em>e</em> ist ein Event-Objekt, kann also bspw. kein .get(). Es hat aber <a href="http://api.jquery.com/category/events/event-object/" target="_blank">andere Funktionen und Attribute</a>.</p><p></p><p></p><p>Duddle</p></blockquote><p></p>
[QUOTE="Duddle, post: 2315561, member: 17775"] Erstens: vergib IDs nicht mehrfach, das ist eine sehr nützliche Konvention. Sollen mehrere Elemente in HTML gleich angezeigt werden, weist du ihnen eine Klasse zu und sprichst diese an. Das gleiche gilt für jQuery: vergib und [URL='http://api.jquery.com/class-selector/']selektiere eine Klasse[/URL], wenn du mehreren Elementen ein gleiches Verhalten zuweisen willst. Algorithmen/Funktionen sollten wiederverwendbar sein, das merkst du ja selbst. Dafür musst du sie abstrahieren, also allgemeiner schreiben. Der direkteste Schritt dahin ist die [URL='http://de.wikipedia.org/wiki/Parameter_%28Informatik%29']Parametrisierung der Funktion[/URL], also das Nutzen von Funktionsparametern zur Steuerung des Algorithmus. Ein Beispiel davon hast du schon selbst in deinem Code:[HTML] $.get("test.txt", function(text){ $("p:first").fadeOut('fast',function(){ $("p:first").html(text).fadeIn('normal'); } ); }); [/HTML] Hier gibst du der Callback-Funktion von $.get() den Parameter [I]text[/I] mit, welcher dann als Variable im Funktionskörper vorhanden ist. Übergibst du anderen Text in [I]text[/I] (der Inhalt kommt ja aus der geholten URL, bspw. "test.txt"), verhält sich der Rest der Funktion anders. Um das jetzt konkreter zu machen, du möchtest genau die genannte Stelle verallgemeinern. Das heißt, du ersetzt "test.txt" durch eine Variable. Diese Variable füllst du vorher mit den notwendigen Informationen und schon ist dieser Teil der Funktion verallgemeinert und kann mehrfach verwendet werden. Jetzt musst du nur noch festlegen, woher diese notwendige Information kommt - irgendwo muss ja stehen, ob der Link für "test.txt" oder "foo.html" oder "bar.css" gilt. Ein Weg wäre, es als [I]href[/I] des Links zu setzen, diesen dann auszulesen und in der o.g. neuen Variable für $.get() zu speichern. Das würde dann auch bewirken, dass Nutzer ohne JS an die verlinkten Dokumente kommen. Ein anderer Weg wird neuerdings häufiger in Form von [URL='http://ejohn.org/blog/html-5-data-attributes/']"data-"-Attributen[/URL] genommen. Diese geben dir die Möglichkeit, zusätzliche Informationen standardkonform in ein Element zu bringen. Diese eigenen Attribute kannst du dann ebenfalls mit jQuery via [URL='http://api.jquery.com/data/'].data()[/URL] auslesen und benutzen. Das $-Zeichen ist nur eine Variable für das jQuery-Objekt. Du kannst jedes $ problemlos mit jQuery ersetzen und das Script funktioniert. Dieses Objekt bietet die vielen Funktionen (bzw. "Methoden" im Kontext einer Klasse) an, die du benutzt. [U]Variablen[/U] selbst werden in jQuery-Scripten oft mit $ begonnen, wenn hinter der Variable ein jQuery-Objekt steckt. Machst du bspw. [HTML]$("#foobar");[/HTML]gibt diese Funktion ein jQuery-Objekt zurück. Würde ich dieses speichern wollen, würde ich [HTML]var $myFoobar = $("#foobar");[/HTML] schreiben, aber [HTML]var myFoobar = $("#foobar");[/HTML] funktioniert exakt gleich. Dein [I]e[/I] in der Funktion ist der Parameter (siehe oben) für die Funktion und wird automatisch mit dem auslösenden [U]E[/U]vent gefüllt. Wenn du [I]e[/I] umbennen willst, muss das auch im Parameter passieren. Die .preventDefault()-Funktion kommt auch nicht ursprünglich von jQuery, sondern JavaScript selbst. Das [I]e[/I] ist ein Event-Objekt, kann also bspw. kein .get(). Es hat aber [URL='http://api.jquery.com/category/events/event-object/']andere Funktionen und Attribute[/URL]. Duddle [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ▲ = 5, ▼ = 2 und ■ = 7, was ist ▲ × ▼ + ■?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Javascript Problem (kompletter Anfänger)
Oben