Сегодняшние сниппеты опять про jQuery. Так же не проходите мимо прошлого набора.
Расположение объекта по центру экрана
jQuery.fn.center = function()
{
var w = $(window);
this.css("position","absolute");
this.css("top",(w.height()-this.height())/2+w.scrollTop() + "px");
this.css("left",(w.width()-this.width())/2+w.scrollLeft() + "px");
return this;
}
Замена текста внутри элемента, используя регулярные выражения
Полезно, например при замене «скрыть» - «показать»
jQuery.fn.toggleText = function(a,b)
{
return this.html(this.html().replace(new RegExp("("+a+"|"+b+")"),
function(x){return(x==a)?b:a;}));
}
Запуск события resize после задержки
Задержка нужна по той причине, что событие resize() постоянно, пока юзер изменяет размер окна. А с использование этой функции, ресайз будет запускаться только через некоторое количество мс после того, как юзер прекратит изменять размер экрана.
jQuery.fn.resizeComplete = function(fn, ms)
{
var timer = null;
this.resize(function()
{
if (timer)
{
clearTimeout(timer);
}
timer = setTimeout(fn,ms);
});
}
Создание селекторая :contains, чувствительного к регистру
jQuery.extend(jQuery.expr[':'], {
containsIgnoreCase: "(a.textContent||a.innerText||jQuery(a).text()||'').toLowerCase().indexOf((m[3]||'').toLowerCase())>=0"
});
Имитация таймаута
$('a').click(function()
{
$(this).animate({width:$(this).width()},5000,
function()
{
// Эта функция запустится только через 5 секунд
alert('Ссылка была нажата 5 секунд назад');
})
});
В комментариях можете задавать любые вопросы, касающиеся jQuery. А мы будем на них отвечать.