Полезные jQuery-сниппеты, которые пригодятся разработчику
Karina | 16.07.2014
Библиотека jQuery уже давно стала популярной, и сегодня очень часто применяется на веб-страницах. С помощью jQuery можно получить доступ к любым элементам DOM, обратиться к их содержимому, атрибутам.
Основная причина такой широкой популярности jQuery – это легкость и простота использования. Возможности данной библиотеки очень широки. Но есть определенный набор сниппетов, применяемых регулярно, который обязательно должен быть под рукой.
Некоторые особо востребованные jQuery-сниппеты приведены ниже. Вы можете сохранить их и использовать для работы.
Сделать кнопку активной, если в поле введен текст
$('#login').keyup(function() {
$('#submit').attr('disabled', !$('#login').val());
});
Пример: с помощью этого фрагмента кода кнопку авторизации можно будет нажать только в том случае, если пользователь ввел текст в поле Login.
Счетчик символов, которые вводятся в поле
function($) {
$.fn.extend( {
limiter: function(limit, elem) {
$(this).on('keyup focus', function() {
setCount(this, elem);
});
function setCount(src, elem) {
var letters = src.value.length;
if (letters > limit) {
src.value = src.value.substr(0, limit);
letters = limit;
}
elem.html( limit - letters );
}
setCount($(this)[0], elem);
}
});
//чтобы установить счетчик символов, введите необходимое значение:
var elem = $('#letters');
$('#text').limiter(128, elem);
Этот сниппет позволяет отобразить оставшееся количество символов, которое пользователь может ввести в заданное поле.
Обратите внимание, что данный фрагмент кода только визуально отображает лимит символов, и не является альтернативой для атрибута maxlength или проверкой на стороне сервера.
Автоформатирование телефонных номеров
$("input[name='phonenumber']").keyup(function() {
var charslen = this.value.length;
var charsval = $(this).val();
if (charslen == 3){
$("input[name='phonenumber']").val("(" + charsval + ")" + "-");
} else if (charslen == 9) {
$("input[name='phonenumber']").val(charsval + "-");
} else if (charslen == 12) {
$("input[name='phonenumber']").val(charsval + "-");
} else if(charslen >=15){
this.value = this.value.substr(0, 15);
}
});
Если вам необходимо, чтобы при вводе телефонного номера в поле phonenumber внешний вид данных автоматически форматировался, используйте этот jQuery-сниппет. С помощью него введенный пользователем номер телефона будет преобразовываться и выглядеть так: (123)-456-78-90. Ограничение количества символов – 15.
Сортировка с помощью jQuery
var catalog = $('ul');
var catalogitems = catalog.children('li').get();
catalogitems.sort(function(a, b) {
var an = $(a).text().toUpperCase();
var bn = $(b).text().toUpperCase();
return (an < bn) ? -1 : (an > bn) ? 1 : 0;
})
$.each(catalogitems, function(idx, itm) { catalog.append(itm);
});
«Зебра» для неупорядоченных списков
$('li:odd').css('background', '#dfdfdf');
Этот небольшой, но полезный сниппет может значительно облегчить просмотр текста. Добавьте код в ту часть разметки, где необходимо «окрасить» нечетные строки в другой цвет.
Скольжение/затухание
//скольжение:
$('.btn').click(function() {
$('.element').slideToggle('normal');
});
//затухание:
$('.btn').click(function() {
$('.element').fadeToggle('normal');
});
Используйте этот сниппет, когда вам необходимо, чтобы при первом клике элемент появлялся, а при втором – исчезал.
Кнопка «Наверх»
$('a.top').click(function(){
$(document.body).animate({scrollTop : 0},900);
return false;
});
//создание якоря:
<a class="top" href="#">Наверх</a>
Изменяя значение отступа прокрутки scrollTop в данном сниппете, вы можете установить, на какое именно место страницы пользователь будет возвращаться, нажимая на кнопку. Также можно указать время, за которое страница должна прокрутиться. В нашем примере указано 900 мс.
Открыть диалоговое окно печати
<a href="#" class="print">Печать страницы</a>
$('a.print').click(function(){
window.print();
return false;
});
Изменение прозрачности с jQuery
$(document).ready(function(){
$('.thumbs img').fadeTo('normal', 0.5);
$('.thumbs img').hover(function(){
$(this).fadeTo('normal', 1.0);
},function(){
$(this).fadeTo('normal', 0.5);
});
});
Данный пример показывает, как можно сделать объект полупрозрачным (50%), а при наведении курсора – непрозрачным.
Автоматическая замена/скрытие отсутствующих изображений
//автозамена на изображение по умолчанию:
$('img').error(function(){
$(this).attr('src', 'img-default.png');
});
//скрытие:
$('img').error(function(){
$(this).hide();
});
Конечно, это далеко не все фрагменты jQuery, которые опытные разработчики используют в своем коде. Надеемся, что вышеприведенные полезные примеры скриптов помогут вам в работе не один раз. Желаем творческих успехов!
Оставить комментарий