jQuery — это библиотека JavaScript. Также рассмотрите возможность добавления тега JavaScript.  jQuery — это популярная кросс-браузерная библиотека JavaScript, которая упрощает обход объектной модели документа (DOM), обработку событий, анимацию и взаимодействие AJAX, сводя к минимуму расхождения между браузерами. Вопрос с тегом jQuery должен быть связан с jQuery, поэтому jQuery должен использоваться рассматриваемым кодом, и в вопросе должны быть как минимум элементы, связанные с использованием jQuery.

Около

jQuery (Core)– это кроссбраузерная библиотека JavaScript (созданаДжоном Резигом< /a>), который предоставляет абстракции для общих клиентских задач, таких как обход DOM, манипулирование DOM, обработка событий, анимация и AJAX. .

JQuery упрощает обход и манипулирование документами HTML, обработку событий, анимацию и AJAX благодаря своему API, который работает во многих браузерах.

JQuery предоставляет платформу для создания плагинов, которые расширяют его возможности за пределы возможностей, уже предоставленных библиотекой Разработка jQuery и связанных с ним проектов координируется Фондом jQuery.

Характеристики

JQuery включает в себя следующие функции:

  • Выбор элементов DOM с использованием мультибраузерного механизма выбора с открытым исходным кодом Sizzle, побочного продукта проекта jQuery.
  • Обход и модификация DOM (включая поддержку CSS 1–3)
  • Управление DOM на основе селекторов CSS, которые используют имена и атрибуты узловых элементов (например, ID и class) в качестве критериев для создания селекторов
  • События
  • Эффекты и анимация
  • AJAX
  • Разбор JSON (для старых браузеров)
  • Расширяемость с помощью плагинов
  • Утилиты, такие как информация о пользовательском агенте, обнаружение функций
  • Методы совместимости, изначально доступные в современных браузерах, но требующие запасных вариантов для более старых — например, функции inArray() и each().
  • Поддержка нескольких браузеров (не путать с кросс-браузерными)

Поддержка браузера

jQuery поддерживаеттекущую стабильную версию и предыдущую версию или "текущую - 1 версию" Chrome, Edge, Firefox и Safari. Он также поддерживает текущую стабильную версию Opera.

Кроме того, jQuery 1.x поддерживает Internet Explorer версии 6 или выше. Однако поддержка IE 6-8 была прервана jQuery 2.xи jQuery 3.x, которые поддерживают только IE 9 или выше.

Наконец, jQuery поддерживает стандартные мобильные браузеры на Android 4.0 и выше и Safari на iOS 7 и выше.

Версии jQuery

JQuery часто обновляется, поэтому библиотеку следует использовать осторожно. Некоторые функции становятся устаревшими с более новыми версиями jQuery. Следуйте заметкам о выпуске, чтобы быть в курсе возможностей.

CDN jQuery предоставляет ссылки для загрузки всех версий jQuery, включая последние стабильные версии каждой ветви.

Задавая вопросы, связанные с jQuery, вы должны:

  1. Внимательно прочитайте документацию по jQuery APIи поиск переполнения стеказа дубликаты, прежде чем спрашивать.
  2. Изолируйте проблемный код и воспроизведите его в онлайн-среде, такой какJSFiddle,JSBin a>или CodePen. Для Live Connect вы также можете использовать LiveWeave. Однако не забудьте указать проблемный код в своем вопросе — не просто ссылайтесь на онлайн-среду. Вы также можете использоватьфрагменты стека, чтобы включить исполняемый код в самом вопросе.
  3. Отметьте вопрос соответствующим образом; всегда включайте jquery и используйте другие теги веб-разработки (html, javascript, ajax) в зависимости от обстоятельств. Самые популярные плагины jQuery также имеют свои собственные теги, такие как jquery-ui, jquery-mobileи jquery-validate; для каждого другого подключаемого модуля добавьте тег jquery-plugins.
  4. Укажите версию используемой библиотеки jQuery, чтобы любые ответы могли предоставить соответствующие версии решения.
  5. Укажите, в каком браузере возникают проблемы с кодом и какие сообщения об ошибках были выданы браузером, если таковые имеются. Если проблемы одинаковы в разных браузерах, это тоже ценная информация.

Часто задаваемые вопросы

Привет мир пример

Это показывает «Привет, мир!» в окне предупреждения при каждом щелчке по ссылке после того, как модель DOM будет готова (JSFiddle):

// callback for document load
$(function () {
    // select anchors and set click handler
    $("a").click(function (event) { 
        // prevent link default action (redirecting to another page)
        event.preventDefault();

        // show the message
        alert("Hello world!"); 
    });
});

Ресурсы

Видеоурок

  • Codechool Try jQuery- интерактивное веб-руководство по бесплатной JQuery

Популярные плагины

Другие проекты jQuery Foundation

Лучшие практики и часто совершаемые ошибки

Смежный вопрос: ловушки jQuery, которых следует избегать

Не забудьте использовать готовый обработчик

Если ваш код каким-то образом манипулирует DOM, вы должны убедиться, что он запускается после завершения загрузки DOM.

JQuery предоставляет способы сделать это с помощью анонимной функции:

$(function () { 
    /* code here */ 
});

// Or
$(document).ready(function () { 
    /* code here */ 
});

Или с именованной функцией:

$(functionName);

// Or
$(document).ready(functionName);

Это альтернативы размещению кода JavaScript или тега сценария в HTML непосредственно перед закрывающим тегом </body>.

В jQuery 3.x рекомендуемый способ добавления готовых обработчикравен $(function () {}), тогда как другие формы, такие как $(document).ready(function () {}), устарели. Кроме того, jQuery 3.x исключает возможность использования.on("ready", function () {}) для запуска функции по событию "ready".

Избегайте конфликтов, используя noConflict() и другой псевдоним для jQuery

Если ваш код jQuery конфликтует с другой библиотекой, которая также использует знак$в качестве псевдонима, используйтеnoConflict()метод:

jQuery.noConflict();

Затем вы можете безопасно использовать $ как псевдоним для другой библиотеки, используя само имя jQuery для функций jQuery.

В качестве альтернативы вы можете позвонить.

$jq = jQuery.noConflict();

И используйте $jq в качестве псевдонима для jQuery. Например:

$jq(function () {
    $jq("a").click(function (event) { 
        event.preventDefault();
        alert("Hello world!"); 
    });
});

Также можно назначить jQuery для $ в определенной области:

jQuery(function ($) {
    // In here, the dollar sign is an alias for jQuery only.
});

// Out here, other libraries can use the dollar sign as an alias.

Затем вы можете использовать $ в качестве псевдонима для jQuery внутри этого функционального блока, не беспокоясь о конфликтах с другими библиотеками.

Кэшируйте ваши объекты jQuery и цепочки, когда это возможно

Вызов функции jQuery $() стоит дорого. Повторный вызов крайне неэффективен. Избегайте этого:

$('.test').addClass('hello');
$('.test').css('color', 'orange');
$('.test').prop('title', 'Hello world');

Вместо этого кэшируйте свой объект jQuery в переменной:

var $test = $('.test');

$test.addClass('hello');
$test.css('color', 'orange');
$test.prop('title', 'Hello world');

Или еще лучше, используйте цепочку, чтобы уменьшить количество повторений:

$('.test').addClass('hello').css('color', 'orange').prop('title', 'Hello world');

Кроме того, помните, что многие функции могут выполнять несколько изменений за один вызов, группируя все значения в объект. Вместо:

$('.test').css('color', 'orange').css('background-color', 'blue');

Использование:

$('.test').css({ 'color': 'orange', 'background-color': 'blue' });

Соглашения об именовании переменных

Переменные в оболочке jQuery обычно называются, начиная с $, чтобы отличать их от стандартных объектов JavaScript.

var $this = $(this);

Знайте свои свойства и функции DOM

Хотя одной из целей jQuery является абстрагирование от DOM, знание свойств DOM может быть полезным. Одна из наиболее частых ошибок тех, кто изучает jQuery, не изучая DOM, заключается в использовании jQuery для доступа к свойствам элемента:

$('img').click(function () {
    $(this).attr('src');  // Bad!
});

В приведенном выше коде this относится к элементу, из которого был запущен обработчик события клика. Приведенный выше код медленный и длинный; приведенный ниже код работает идентично и намного короче, быстрее и читабельнее.

$('img').click(function () {
    this.src; // Much, much better
});

Идиоматический синтаксис для создания элементов

Хотя следующие два примера кажутся функционально эквивалентными и синтаксически правильными, предпочтительным является первый пример:

$('<p>', {
    text: 'This is a ' + variable, 
    "class": 'blue slider', 
    title: variable, 
    id: variable + i
}).appendTo(obj);

Для сравнения, метод конкатенации строк гораздо менее читабелен и гораздо более хрупок:

$('<p class="blue slider" id="' + variable + i + '" title="' + variable + '">This is a ' + variable + '</p>').appendTo(obj);

Хотя первый пример будет медленнее второго, преимущества большей ясности, вероятно, перевесят номинальные различия скорости во всех приложениях, кроме наиболее чувствительных к производительности.

Более того, идиоматический синтаксис устойчив к введению специальных символов. Например, во втором примере символ кавычки в variable преждевременно закроет атрибуты. Выполнение правильного кодирования самостоятельноостается возможным, даже если это не рекомендуется, поскольку склонен к ошибкам.

Чаты

Поговорите о jQuery с другими пользователями Stack Overflow:

Альтернативы / Конкуренты

Другие известные библиотеки JavaScript:

Публичные репозитории:

  • cdnjs- проект сообщества Cloudflare, который в настоящее время используется примерно 1 143 000 веб-сайтов по всему миру.
  • jsdelivr— такая же бесплатная CDN с открытым исходным кодом, альтернативная cdnjs.

Связанные теги