2010-08-01 12 views
22

Jestem początkujący w JQuery.

Kiedy należy użyć kropki po $?

a nie $trim(str)?

A niektóre przypadki bez punktu: $(document).ready, ale nie $.(document).ready?

Dzięki.

+4

Krótka odpowiedź: znak dolara będzie na ogół następował po nawiasie lub kropce i nazwie metody. Oczywiście powinieneś koniecznie spróbować nauczyć się języka JavaScript, aby zrozumieć, co naprawdę oznaczają wszystkie kropki i nawiasy :) – Martin

Odpowiedz

18

Nie wierzę, że masz wybór, tylko jedna składnia jest poprawna i zadziała. $ symbol nie jest niczym więcej niż skrótowym zapisem dla funkcji jQuery, więc kiedy piszesz:

$('some selector') 

Jesteś wywołanie funkcji o nazwie jQuery i przechodzącą w ciąg, lub w przypadku, jesteś przekazanie obiektu document.

Jeśli chodzi o wywoływanie metody, takiej jak metoda pomocnicza, taka jak przycinanie, należy użyć następującej składni: jQuery.trim() lub $.trim(). Łatwo jest sprawdzić samemu, po prostu spróbuj tego:

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

... i ['typeof'] (https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/typeof_Operator) operator nie potrzebuje nawiasów ani kropki. ;-) –

3

Podczas uzyskiwania dostępu do statycznej metody jQuery, który nie jest dostępny w prototypie powiedzmy elementu DOM. trim to metoda statyczna wyeksponowana przez interfejs API.

Nie ma $.fn.trim i nie możemy polegać na String.prototype.trim, ponieważ metody mogą się różnić.

Jeśli chodzi o $trim, to nie jest zdefiniowane. trim jest metodą z $, która jest jQuery. Możesz wykonać albo $['trim'] lub $.trim, i to powinien być jedyny sposób, aby uzyskać do niego dostęp.

19

W jQuery, $ jest nazwą zmiennej, np. foo lub bar, która odwołuje się do globalnego obiektu jQuery. Jeśli chcesz uzyskać dostęp do właściwości obiektu jQuery, użyj kropki. Są to w zasadzie to samo:

$.property 
jQuery.property 

(Od $ jest zmienna jak każda inna, to jest możliwe, aby ustawić go na cokolwiek chcesz to może się zdarzyć, jeśli było to bibliotekę Prototype po uwzględnieniu. jQuery library, która zostawia cię z $ wskazującą na alias funkcji document.getElementById.)

Przedmiotem jQuery dzieje się także funkcja, dzięki czemu można wywołać tej funkcji tak samo jak można wywołać dowolną inną funkcję:

$(arguments) 
alert("arguments!") 

Z drugiej strony, $trim jest po prostu kolejną zmienną globalną, jak $ lub location, które mogłyby być funkcja definiowania siebie:

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

$trim(str) 
+1

+1 najlepsza odpowiedź – CodyBugstein

2

Składnia $.foo oznacza, że ​​$ jest traktowana jako obiekt o pole o nazwie foo, które zwykle jest funkcją, do której dzwonisz. Tak naprawdę nie jest to nic innego jak samodzielna funkcja o nazwie foo - jest to po prostu poprzedzone $., aby odróżnić ją od dowolnej innej funkcji i powiązać ją z biblioteką jQuery.

Gdy używasz $(something).foo, to przekazujesz something do funkcji jQuery, a wynik zależy od tego, co przechodzisz (może to być selektor do znalezienia istniejącego obiektu lub może to być fragment kodu HTML do zbudowania nowy obiekt lub może to być funkcja, która ma zostać zarejestrowana do uruchomienia przy ładowaniu strony). W każdym razie, wywołujesz następnie foo na wynikowym zwracanym obiekcie, który może być zastosowany do kilku obiektów DOM, jeśli przekazany selektor identyfikuje na przykład klasę.

Pierwsza składnia jest używana, gdy funkcja jQuery działa na obiekcie innym niż DOM (części strony HTML). Na przykład ciąg ($.trim) lub tablica ($.each). To nie są elementy strony, są po prostu czystymi danymi w JavaScript.

Druga składnia jest używana podczas pracy z elementami DOM - używasz $(something) do utworzenia obiektu jQuery, który jest opakowaniem wokół zera lub większej liczby elementów DOM. Następnie wywołujesz funkcje na zwróconym opakowaniu, aby wygodnie manipulować obiektami, które otacza.

Powiązane problemy