-
Hallo,
kann mir jemand von Euch näher bringen, wie der $-Operator in JS funktioniert!?
Z.B. wird er auch für jQueryUI-Library verwendet (siehe Anhang).
Was ich dabei nicht verstehe ist: Diesen Operator scheinen alle JS-Libs zu verwenden. Wie funktionert denn da die Zuordnung?
Also was ich evtl. verstehen würde wäre statt
"$('#date').datepicker();"
statt dessen
"jQueryUI.('#date').datepicker();" oder evtl.
"('#date').jQueryUI.datepicker();"
Aber "$"?
Wo ist da der Zusammenhang mit der jQueryUI?
Vielen Dank,
Frank
-
Moin Frank,
dies $ ist kein Operator, es ist ein ganz normales Zeichen, mehr nicht.
Sehe das $ einfach als Variablennamen an, oder im Falle von jQuery als Funktionsnamen, mehr ist es wirklich nicht.Geändert von Sven Mintel (09.09.10 um 20:04 Uhr)
-
09.09.10 20:14 #3
@Sven Mintel: Ist dieses Zeichen überhaupt erlaubt? Bei SelfHTML steht nämlich nichts.
mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
Jo, ist es.
In der Javascript-Referenz von Netscape steht:
Der Kern von Javascript ist standardisiert und wird auch als ECMAScript bezeichnet.Variable name. It can be any legal identifier.
Darüber gibt es also festgelegte Regeln, hier nachzulesen: http://www.ecma-international.org/pu...T/ECMA-262.pdf
Und dort steht dies:Die älteste einsehbare Version von ECMAScript ist von 1998, und schon da ist das $ erlaubt, wenn auch "intended forThe dollar sign ($) and the underscore (_) are permitted anywhere in an IdentifierName.
use only in mechanically generated code"(was immer damit auch gemeint sein soll
)
SelfHTML ist also nicht auf dem Laufenden.Geändert von Sven Mintel (09.09.10 um 20:51 Uhr)
-
Also jQuery scheint sich um die Verwendung anderer Libs zu kümmern! Siehe hier:
http://docs.jquery.com/Using_jQuery_...ther_Libraries
Das heisst aber doch, dass jQueryUI keine anderen neben sich duldet!?
-
-
-
Mmmh, da hast du wohl etwas falsch gemacht, auch mit jQueryUI geht das, kannst es gerne probieren:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
<!DOCTYPE html> <html> <head> <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> <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> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script> <style type="text/css"> #draggable,#clickable { width: 100px; height: 70px; background: silver;border:1px dotted #000; margin:12px;} </style> <script> jQuery.noConflict(); jQuery(document).ready(function() { jQuery("#draggable").draggable(); }); </script> </head> <body> <div id="draggable">Drag me with jQueryUI</div> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js"></script> <div id="clickable">Click me with PrototypeJS</div> <script> $('clickable').observe('click', function(){$(this).setOpacity(($(this).getOpacity()==1)?.5:1);}); </script> </body> </html>Geändert von Sven Mintel (09.09.10 um 21:29 Uhr)
-
OK, danke, schaue ich mir mal an...
-
-
Ja, es funktioniert.
Mein Problem ist immer noch: Warum?
Wenn ich mir nochmal folgende Zeile anschaue:
Wie kommt es, dass sich die jQueryUI-Lib dafür zuständig fühlt?Code :1
$('#date').datepicker();
Gut, diese hat offensichtlich eine function "datepicker()" im Bauch. Aber was, wenn eine andere Lib auch die function "datepicker()" hätte? Dann wäre das doch ein Problem? Oder?
Schöne Grüße,
Frank
-
10.09.10 08:37 #12
Wenn du noch eine andere Lib einbindest, dann musst du jQuery.noConflict(); aufrufen.
mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
Probiers doch aus :P Rein aus dem Bauch geraus würde ich sagen, das dass Framework, das zuletzt eingebunden wurde und die "$"-Funktion hat, aufgerufen wird.
Ich denke das beim Parsen des Dokuments vom Browser die JS Funktionen gespeichert werden und gegebenenfalls überschrieben werden wenn sie doppelt vorkommen.
Gruß
-
-
Die Funktion $ gibt ein Objekt zurück, und dies zurückgegebene Objekt hat eine Methode namens datepicker:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
function $(selektor) { return { selektor:selektor, datepicker:function() { alert('Der Selektor ist '+this.selektor+ '\n und ich bin die Methode datepicker()' ); } }; } $('#irgendwas').datepicker();



6Danke

Zitieren


Login




