jQuery — это библиотека JavaScript, предназначенная для упрощения работы с DOM, обработкой событий, анимацией и AJAX. Подключение библиотеки осуществляется через ссылку на локальный файл или CDN:
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
Инициализация jQuery обычно начинается с конструкции:
$(document).ready(function() {
// код, выполняющийся после загрузки DOM
});
или сокращённо:
$(function() {
// код
});
Эта конструкция гарантирует, что все элементы страницы будут доступны для работы.
jQuery использует CSS-подобные селекторы для выбора элементов:
$('#id') // элемент с конкретным id
$('.class') // элементы с конкретным классом
$('div') // все элементы <div>
$('ul li:first') // первый <li> внутри <ul>
Результат выбора всегда является объектом jQuery, поддерживающим цепочку методов для дальнейших действий.
$('#text').text('Новый текст'); // изменяет текст
$('#html').html('<b>Жирный текст</b>'); // изменяет HTML
$('#link').attr('href', 'https://example.com'); // изменение атрибута
$('#img').css({
'width': '200px',
'border': '1px solid #000'
}); // множественные CSS свойства
$('<p>Новый абзац</p>').appendTo('#container'); // добавить внутрь контейнера
$('#old').remove(); // удалить элемент
$('#item').empty(); // удалить содержимое элемента
jQuery упрощает назначение обработчиков событий:
$('#button').click(function() {
alert('Кнопка нажата');
});
$('#input').on('focus', function() {
$(this).css('background-color', '#f0f0f0');
});
Поддерживаются доступные методы:
.click(), .dblclick(), .hover(),
.focus(), .blur(), а также универсальный
.on() для любых событий, включая делегирование:
$('#list').on('click', 'li', function() {
$(this).toggleClass('active');
});
jQuery предоставляет встроенные методы для анимации:
$('#box').hide(); // скрыть элемент
$('#box').show(); // показать элемент
$('#box').fadeIn(1000); // плавное появление
$('#box').fadeOut(500); // плавное исчезновение
$('#box').slideUp(); // слайд вверх
$('#box').slideDown(); // слайд вниз
Для кастомной анимации используется метод .animate(),
позволяющий изменять CSS-свойства с анимацией:
$('#box').animate({
width: '300px',
height: '200px',
opacity: 0.5
}, 1000);
jQuery упрощает асинхронные запросы к серверу. Основные методы:
$.ajax({
url: 'data.json',
type: 'GET',
dataType: 'json',
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
$.get('data.txt', function(data) {
$('#output').text(data);
});
$.post('submit.php', { name: 'John' }, function(response) {
console.log(response);
});
Методы $.getJSON и $.load позволяют
загружать данные в формате JSON или HTML непосредственно в элементы
DOM.
Плагин — это расширение jQuery, добавляющее новые методы или функциональность. Создание плагина включает несколько этапов:
(function($){
$.fn.myPlugin = function(options) {
var settings = $.extend({
color: 'red',
fontSize: '16px'
}, options);
return this.each(function() {
$(this).css({
'color': settings.color,
'font-size': settings.fontSize
});
});
};
})(jQuery);
Ключевые моменты:
(function($){ })(jQuery) для изоляции пространства
имён.$.fn.myPlugin добавляется к прототипу jQuery, что
позволяет применять его к выбранным элементам.$.extend объединяет значения по умолчанию с переданными
параметрами..each() обеспечивает применение к каждому
элементу выборки.$('#text').myPlugin({
color: 'blue',
fontSize: '20px'
});
Для публикации плагина необходимо выполнить несколько шагов:
Подготовка исходного кода: плагин должен быть
самодостаточным и не конфликтовать с другими библиотеками. Используются
обёртки IIFE и метод noConflict при необходимости.
Документация: каждый метод и опция должны быть подробно описаны, с примерами кода. Хорошая документация ускоряет внедрение и повышает доверие.
Минификация: для распространения плагин часто минимизируется с помощью инструментов вроде UglifyJS или Terser.
terser plugin.js -o plugin.min.js
package.json с описанием, зависимостями и скриптами:{
"name": "jquery-myplugin",
"version": "1.0.0",
"main": "plugin.min.js",
"keywords": ["jquery", "plugin"],
"author": "Author Name",
"license": "MIT"
}
Публикация осуществляется через команды:
npm login
npm publish
Распространение через CDN: для удобного подключения можно разместить плагин на популярных сервисах типа jsDelivr или unpkg.
Пример использования: рекомендуется подготовить демо-страницу, показывающую все возможности плагина. Это облегчает тестирование и привлекает пользователей.
if (typeof jQuery !== 'undefined') {
// код плагина
}
Плагины могут быть расширяемыми с помощью дополнительного функционала:
$.fn.myPlugin.defaults = {
color: 'red',
fontSize: '16px'
};
$('#text').myPlugin($.extend({}, $.fn.myPlugin.defaults, { color: 'green' }));
Такой подход позволяет сохранять стандартные значения и при этом настраивать конкретные экземпляры.
Плагины могут взаимодействовать с другими плагинами через события или колбеки, создавая модульную архитектуру.