Когда период должен использоваться после $ в jQuery?

Я - новичок в JQuery.

Когда должен точка после $ использоваться?

$.trim(str) и нет $trim(str)?

И некоторые случаи без точки: $(document).ready, но нет $.(document).ready?

Спасибо.

22
задан Daniel Sun Yang 26 January 2013 в 15:35
поделиться

4 ответа

Я не думаю, что у вас есть выбор, только один синтаксис верен и действительно будет работать. Символ $ - это не что иное, как сокращенное обозначение функции jQuery , поэтому, когда вы пишете:

$('some selector')

, вы вызываете функцию с именем jQuery , и передавая строку, или, в вашем случае, вы передаете объект документ .

Когда дело доходит до вызова метода, такого как вспомогательный метод, например trim, вам нужно будет использовать следующий синтаксис: jQuery.trim () или $. Trim () . Проверить себя легко, просто попробуйте следующее:

typeof($.trim) //returns "function"
typeof($trim) //returns "undefined"
18
ответ дан 29 November 2019 в 04:40
поделиться

Когда вы обращаетесь к статическому методу jQuery, который недоступен в прототипе, скажем, элемента DOM. trim - статический метод, предоставляемый API.

Не существует $ .fn.trim , и мы не можем надежно полагаться на String.prototype.trim , поскольку методы могут различаться.

Что касается $ trim , это не определено. Обрезка - это метод $ , который является jQuery. Вы можете выполнить $ ['trim'] или $. Trim , и это должен быть единственный способ получить к нему доступ.

3
ответ дан 29 November 2019 в 04:40
поделиться

Синтаксис $. Foo означает, что $ обрабатывается как объект с полем с именем foo , которое обычно является функцией, которую вы вызываете. . Так что на самом деле это не что иное, как отдельная функция с именем foo - она ​​просто имеет префикс $. , чтобы отличить ее от любой другой функции и связать ее с библиотекой jQuery.

Когда вы используете $ (something) .foo , тогда вы передаете something функции jQuery, и результат зависит от того, что вы передаете (может быть селектор найти существующий объект, или это может быть обрывок HTML для создания нового объекта, или это может быть функция, которую нужно зарегистрировать для запуска при загрузке страницы). В любом случае вы затем вызываете foo для полученного возвращенного объекта, который может быть применен к нескольким объектам DOM, например, если переданный вами селектор идентифицирует класс.

Первый синтаксис используется, когда функция jQuery работает не с объектами DOM (частями HTML-страницы), а с чем-то другим. Например, строка ( $. Trim ) или массив ( $. Each ). Это не элементы страницы, это просто данные в JavaScript.

Второй синтаксис используется при работе с элементами DOM - вы используете $ (something) для создания объекта jQuery, который является оболочкой вокруг нуля или более элементов DOM. Затем вы вызываете функции возвращенной оболочки для удобного управления объектами, которые она обертывает.

2
ответ дан 29 November 2019 в 04:40
поделиться

В jQuery $ - это имя переменной, например foo или bar , которое ссылается на глобальный объект jQuery. Если вы хотите получить доступ к свойству объекта jQuery, используйте точку. По сути, это то же самое:

$.property
jQuery.property

(Поскольку $ является переменной, как и любая другая, вы можете установить для нее все, что захотите. Это может произойти, если вы включите Прототип библиотеки после включения библиотеки jQuery, что оставит вас с $ , указывающим на псевдоним функции document.getElementById .)

Объект jQuery также может быть функцией, поэтому вы можете вызывать эту функцию так же, как и любую другую функцию:

$(arguments)
alert("arguments!")

С другой стороны, $ trim - это просто еще одна глобальная переменная, например $ или местоположение , которое может быть функцией, которую вы определили сами:

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

$trim(str)
19
ответ дан 29 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: