2010-08-01 6 views
22

Ich bin ein Anfänger in JQuery.

Wann sollte der Punkt nach $ verwendet werden?

$.trim(str) und nicht $trim(str)?

Und einige Fälle ohne Punkt: $(document).ready, aber nicht ?

Danke.

+4

Kurze Antwort: Das Dollarzeichen wird in der Regel sofort entweder durch Klammern oder durch einen Punkt und einen Methodennamen gefolgt. Natürlich sollten Sie unbedingt versuchen, die JavaScript-Sprache zu lernen, damit Sie verstehen, was alle Punkte und Klammern wirklich bedeuten :) – Martin

Antwort

18

Ich glaube nicht, dass Sie eine Wahl haben, nur eine Syntax ist korrekt und wird tatsächlich funktionieren. Das $ Symbol ist nichts anderes als eine Kurzschreibweise für die jQuery Funktion, so dass, wenn Sie schreiben:

$('some selector') 

Sie eine Funktion aufrufen, die so genannte jQuery und in einem String übergeben, oder in Ihrem Fall, du bist Übergabe im document Objekt.

Wenn es darum geht, eine Methode wie eine Hilfsmethode wie trim aufzurufen, müssen Sie die folgende Syntax verwenden: jQuery.trim() oder $.trim(). Es ist einfach, sich selbst zu überprüfen, versuchen Sie einfach this out:

typeof($.trim) //returns "function" 
typeof($trim) //returns "undefined" 
+4

... und das ['typeof'] (https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operatoren/Special_Operators/type_Operator) -Operator benötigt keine Klammern oder einen Punkt. ;-) –

3

Wenn Sie die statische Methode von jQuery zugreifen, die nicht in dem Prototyp von etwa einem DOM-Element ist. trim ist eine statische Methode, die von der API bereitgestellt wird.

Es gibt keine $.fn.trim und wir können nicht zuverlässig auf String.prototype.trim verlassen, da die Methoden unterscheiden können.

In Bezug auf $trim das ist nicht definiert. Die trim ist eine Methode von $, die jQuery ist. Sie können entweder $['trim'] oder $.trim tun, und das sollte die einzige Möglichkeit sein, darauf zuzugreifen.

19

In jQuery ist $ ein Variablenname wie foo oder bar, der auf das globale jQuery-Objekt verweist. Wenn Sie auf eine Eigenschaft des jQuery-Objekts zugreifen möchten, verwenden Sie den Punkt. Dies sind im Grunde das gleiche:

$.property 
jQuery.property 

(Da $ eine Variable wie jede andere ist, ist es möglich, dass Sie es auf etwas setzen Sie Dies könnte passieren, wenn Sie die Prototype Bibliothek enthalten waren nach einschließlich der. jQuery-Bibliothek, die Sie mit $ auf einen Alias ​​der document.getElementById Funktion verlassen würde.)

Das jQuery-Objekt geschieht auch eine Funktion sein, können Sie das gleiche, die Funktion so aufrufen wie jede andere Funktion aufrufen würden:

$(arguments) 
alert("arguments!") 

Auf der anderen Seite, $trim ist nur eine andere globale Variable, wie $ oder location, die eine Funktion, die Sie selbst definiert sein könnte:

var $trim = function(arguments) { 
    return "foo"; 
}; 

$trim(str) 
+1

+1 die beste Antwort – CodyBugstein

2

Die $.foo Syntax bedeutet, dass $ mit einem als Objekt behandelt wird Feld namens foo, das ist normalerweise eine Funktion, die Sie anrufen. Das ist also nichts anderes als eine eigenständige Funktion namens foo - sie hat nur das Präfix $., um sie von jeder anderen Funktion zu unterscheiden und sie der jQuery-Bibliothek zuzuordnen.

Wenn Sie $(something).foo dann Sie something auf die jQuery-Funktion sind vorbei, und das Ergebnis hängt davon ab, was Sie vorbei (könnte ein Wähler sein, ein bestehendes Objekt zu finden, oder es könnte ein Stück von HTML zu bauen ein neues Objekt, oder es könnte eine Funktion sein, die beim Laden der Seite registriert wird. In jedem Fall rufen Sie dann foo für das resultierende zurückgegebene Objekt auf, das auf mehrere DOM-Objekte angewendet werden kann, wenn der von Ihnen übergebene Selektor beispielsweise eine Klasse identifiziert.

Die erste Syntax wird verwendet, wenn die jQuery-Funktion auf etwas anderem als DOM-Objekten (Teilen der HTML-Seite) ausgeführt wird. Zum Beispiel eine Zeichenfolge ($.trim) oder ein Array ($.each). Das sind keine Elemente der Seite, sondern reine Daten in JavaScript.

Die zweite Syntax wird verwendet, wenn Sie mit DOM-Elementen arbeiten - Sie verwenden $(something), um ein jQuery-Objekt zu erstellen, bei dem es sich um einen Wrapper um null oder mehr DOM-Elemente handelt. Dann rufen Sie Funktionen auf dem zurückgegebenen Wrapper auf, um die umbrochenen Objekte bequem zu bearbeiten.

Verwandte Themen