Селектор jQuery перед функцией - PullRequest
0 голосов
/ 14 марта 2011

какая разница между:

   $(function () {

    });

и это:

  function HideDiv() {

    }

Я знаю, во-первых, это функция jQuery, а во-вторых, функция Javascript. но я не знаю, почему он поставил селектор '$' перед ключевым словом функции. я думал, что jQuery Selector для поиска HTML-элемента, например, это:

$("#loading").hide('fade');

найти элемент с именем загрузки и скрыть это. С уважением.

Ответы [ 6 ]

3 голосов
/ 14 марта 2011

$ является сокращением для jQuery и представляет объект jQuery. Этот контекст в основном является сокращением:

jQuery(document).ready(function()
{


});

и действует как функция onDOMReady для выполнения кода после загрузки страницы. По сути, вы «находите» элемент документа и запускаете скрипт, когда он заканчивает загрузку.

Второй - просто общая функция

2 голосов
/ 14 марта 2011

Есть функции, участвующие в обоих из них, но контекст немного отличается.Первый:

$(function() { ... });

- это одновременно и функция , вызов и функция определение .Вызов осуществляется самой функцией jQuery, псевдоним которой равен «$».Вызов функции имеет параметр, и этот параметр является анонимной функцией.Функция jQuery ответит на этот вызов функции, сохранив ссылку на анонимную функцию, а затем - когда документ будет готов - она ​​вызовет вашу функцию.

Вторая форма - это просто простое выражение определения функции JavaScript,Он создает функцию с именем, которое может вызываться другим кодом в той же области или в любой лексически заключенной области.

2 голосов
/ 14 марта 2011

Разница очень большая!

function HideDive(){

}

Создает именованную функцию, которую позже можно вызвать как: HideDiv

$(function() {

});

Делает что-то полностьюдругое: она регистрирует анонимную функцию с jQuery, по сути говоря: когда страница загружена, пожалуйста, вызовите эту функцию.

Запись $( ... ); является сокращением, что означает jQuery(document).ready( ... ).

Надеюсь, это прояснит ситуацию!

1 голос
/ 14 марта 2011

Первый - это сокращение от $ (document) .ready (function () {}) [хотя я не верю после 1.4, я полагаю].Я вижу, что его легко спутать с анонимной функцией в любом случае на основе синтаксиса.

Типичная анонимная функция будет выглядеть так же, как ваш первый пример без $.См. Почему вам нужно вызывать анонимную функцию в той же строке? о том, как работает анонимная функция.

Вторая - стандартная функция JS (которая также является инстанцируемым объектом).

1 голос
/ 14 марта 2011

Первая функция («функция jQuery») технически все еще является функцией JavaScript, поскольку jQuery - это просто библиотека JavaScript.Однако в данном конкретном случае эта функция означает нечто особенное для jQuery.В частности, это функция готовности, означающая, что она будет работать после того, как DOM будет готов (AKA, страница загрузилась).

Вторая функция - это «обычная» функция.Это можно вызвать из других частей кода JavaScript (включая код jQuery, который, если вы помните, является JavaScript).Это позволяет вам инкапсулировать различные действия или фрагменты информации, которые вы можете использовать повторно (а не повторять снова и снова).Вы также можете комбинировать их, как это:

$(function() {
  // Call the function...
  MyFunctionToDoSomething();
});

function MyFunctionToDoSomething() {
  // Do stuff here.
}
1 голос
/ 14 марта 2011

Первая - это анонимная функция, которая вызывается, когда DOM готов для взаимодействия с jQuery.Это аналогично:

$(document).ready(function() { 
   // ...
});

Последняя является именованной функцией, которая может вызываться любым кодом в своей области видимости.

Другой интересный фрагмент синтаксиса функции:

(function() {
    // ...
})();

, которая является самоисполняющейся функцией .

...