22 декабря 2015
23 мая 2008
30
Пятничные сниппеты. jQuery
Начиная с сегодняшнего дня, каждую пятницу мы будем выкладывать некоторое количество сниппетов на разные темы.
Для тех, кто не знает, сниппетами обычно называют небольшой кусок кода, который полезно всегда иметь под рукой, чтобы не тратить время на поиск в голове или в интернете.
Поехали. Сегодняшние сниппеты касаются jQuery.
1. Плавное изменение цвета
Вы должно быть заметили, что ссылки у нас (в главном меню, в тегах и в заголовках на главной), плавно меняют свой цвет.
Как это делается при помощи jQuery: устанавливаем плагин Color Animations и пишем:
$(document).ready( function() {
$(".mainMenu a, .articleTitle a").mouseover( function() {
$(this).animate({color: "#cc4e4e"}, {queue:false, duration:250 });
}).mouseout( function() {
$(this).animate({color: "#0e8db7"}, { queue:false, duration:350});
});
});
2. Выбрать все чекбоксы конкретного объекта
// context = id элемента, внутри которого чекбоксы
function checkall(context){
$("#"+context).find("input[@type$='checkbox']").each(function(){
this.checked = checked;
});
}
3. Количество выбранных элементов
$('element').size();
4. Состояние радиобаттона
var var_name = $("input[@name='radio_name']:checked").val();
5. Переключатель класса
$.fn.swapClass = function(c1, c2){
return this.each(function(){
var t = $(this);
(!t.is('.'+c1)) ?
t.addClass(c1).removeClass(c2) : t.addClass(c2).removeClass(c1);
});
}
Или короче (спасибо Sam'у):
$('#element').toggleClass('selected');
6. Перехват изменения размера окна
function doSomething() {
alert("Я закончил изменение размера!");
};
var resizeTimer = null;
$(window).bind('resize', function() {
if (resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout(doSomething, 100);
});
Пока все, что касается jQuery. В скором времени мы дополним эти сниппеты еще парочкой, как вы можете догадаться это произойдет в одну из пятниц.=)
Если у вас, дорогие читатели, есть свои заготовки, которыми вам не жалко поделиться, кидайте к нам на почту pisem@vremenno.net. Темы сниппетов ограничиваются клиентской частью веб-приложений, то есть js, css, HTML.
$('#form-id input:checkbox').attr({checked: 'checked'});
Многие методы jQuery могут работать как с единичным объектом, так и с целым массивом объектов. Про переключатель класса уже поправили ;-)онлайн курсы(Олег Владимирович, мы тут не меняемся ссылочками не по теме)$('element').length;
Спасибо всем!