Выбор элементов в Zepto осуществляется с помощью
функции $(), аналогично jQuery. В качестве аргумента можно
использовать CSS-селекторы, DOM-элементы, HTML-строки или массив
элементов. Примеры:
var divs = $('div'); // все <div> на странице
var firstItem = $('#item'); // элемент с id="item"
var newElement = $('<p>Текст</p>'); // создание нового элемента
Проверка и фильтрация элементов выполняется методами
filter(), not(), is():
$('li').filter('.active'); // только элементы с классом active
$('li').not('.disabled'); // исключает элементы с классом disabled
$('input').is(':checked'); // проверяет, отмечен ли хотя бы один
Получение и установка HTML и текста:
$('#content').html(); // получить HTML
$('#content').html('<p>Новый контент</p>'); // установить HTML
$('#content').text(); // получить текст
$('#content').text('Новый текст'); // установить текст
Манипуляции с атрибутами и свойствами:
$('#link').attr('href'); // получить значение атрибута href
$('#link').attr('href', 'https://example.com'); // установить атрибут
$('#checkbox').prop('checked', true); // установить свойство checked
$('#checkbox').prop('checked'); // получить значение свойства
Работа с данными через data()
обеспечивает удобное хранение пользовательских данных:
$('#item').data('id', 123); // установка
var id = $('#item').data('id'); // получение
Добавление, удаление и переключение классов:
$('#box').addClass('active'); // добавить класс
$('#box').removeClass('hidden'); // удалить класс
$('#box').toggleClass('highlight'); // переключить класс
Изменение CSS-свойств:
$('#box').css('color'); // получить значение свойства
$('#box').css('color', 'red'); // установить свойство
$('#box').css({
width: '100px',
height: '50px',
background: '#eee'
}); // установка нескольких свойств
Вставка и удаление элементов:
$('<li>Новый</li>').appendTo('#list'); // вставка внутрь
$('#list').prepend('<li>В начало</li>'); // вставка в начало
$('#item').after('<div>Снизу</div>'); // вставка после
$('#item').before('<div>Сверху</div>'); // вставка до
$('#item').remove(); // удаление элемента
$('#item').empty(); // очистка содержимого
Клонирование элементов с сохранением событий:
var clone = $('#item').clone(true);
$('#list').append(clone);
Привязка и удаление событий:
$('#btn').on('click', function() {
alert('Нажатие');
});
$('#btn').off('click'); // удалить обработчик
События мыши и клавиатуры:
$('#input').on('focus blur', function() {
$(this).toggleClass('focused');
});
$('#box').on('mouseenter mouseleave', function() {
$(this).toggleClass('hover');
});
События пользовательские можно создавать и вызывать
с помощью trigger:
$('#item').on('customEvent', function(e, data) {
console.log(data);
});
$('#item').trigger('customEvent', {key: 'value'});
Скрытие и показ элементов:
$('#box').hide();
$('#box').show();
$('#box').toggle(); // переключение видимости
Анимации с плавным переходом:
$('#box').fadeIn();
$('#box').fadeOut();
$('#box').fadeToggle();
$('#box').slideUp();
$('#box').slideDown();
$('#box').slideToggle();
Настройка скорости анимации:
$('#box').fadeIn(500); // 500 мс
$('#box').slideUp('slow'); // predefined 'slow' или 'fast'
Получение размеров элементов:
var width = $('#box').width();
var height = $('#box').height();
var outerWidth = $('#box').outerWidth(true); // с учетом margin
var outerHeight = $('#box').outerHeight(true);
Работа с позиционированием:
var offset = $('#box').offset(); // позиция относительно документа
var position = $('#box').position(); // позиция относительно родителя
$('#box').offset({ top: 100, left: 50 }); // установка позиции
Перебор элементов с помощью each:
$('li').each(function(index, el) {
$(el).text('Элемент ' + index);
});
Методы map и get для
трансформации и получения массивов:
var ids = $('li').map(function() {
return $(this).data('id');
}).get(); // возвращает обычный массив
Основные методы Ajax в Zepto:
$.get('/api/data', function(response) {
console.log(response);
});
$.post('/api/data', {id: 1}, function(response) {
console.log(response);
});
$.ajax({
url: '/api/data',
method: 'GET',
dataType: 'json',
success: function(data) { console.log(data); },
error: function(xhr) { console.error(xhr); }
});
Управление JSONP для кросс-доменных запросов:
$.ajax({
url: 'https://example.com/data?callback=?',
dataType: 'jsonp',
success: function(response) { console.log(response); }
});
Проверка типа и работы с объектами:
$.isArray([1,2,3]); // true
$.isFunction(function(){}); // true
$.isPlainObject({a:1}); // true
Расширение объектов и объединение данных:
var obj1 = {a:1};
var obj2 = {b:2};
$.extend(obj1, obj2); // {a:1, b:2}
Сериализация форм:
var data = $('form').serialize(); // строка URL-encoded
var objData = $('form').serializeArray(); // массив объектов {name, value}
Поддержка готовности документа:
$(function() {
console.log('DOM готов');
});
Отложенное выполнение с deferred и
промисами:
var request = $.get('/api/data');
request.done(function(data){ console.log(data); });
request.fail(function(){ console.error('Ошибка'); });
Все методы Zepto возвращают объект коллекции, что позволяет создавать цепочки:
$('#box')
.addClass('active')
.css('color', 'red')
.slideDown(400)
.on('click', function() { alert('Нажатие'); });
Цепочки обеспечивают компактный и читаемый код, позволяя последовательно применять несколько операций к одному набору элементов.