Пятничные сниппеты. jQuery, часть вторая
Сегодняшние сниппеты опять про jQuery. Так же не проходите мимо прошлой статьи про 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. А мы будем на них отвечать.
Понравилась статья?
Тогда подпишись на обновления через RSS или воспользуйся
другими способами подписки.



Комментарии — 17
RSSscrollTop()иscrollLeft()должны быть без скобочек - это не функции. К сожалению не сработал первый сниппет, но для себя я в свое время нашел такое решение (см. Some CSS):jQuery.fn.center = function() { this.css("top", document.documentElement.scrollTop + "px"); this.css("left", document.documentElement.scrollLeft "px"); this.css("width", document.documentElement.clientWidth "px"); this.css("height", document.documentElement.clientHeight "px"); return this; }Ну и дополнительно к этому коду я добавил обработчик изменения размера окна, немного упрощенный вариант:$(window).bind('resize', function() { $('#modal').center(); });center()к элементу применяются другие функции, изменяющие его вид/состояние (как напримерfadeIn()) то значения размеров и положения могут (а может и всегда так) вернуться к прописанным ранее в CSS, т.е. при определенных условиях стили переданные через jQuery не применяются :( Короче если делаешьcenter()то не стоит указывать соответствующие свойства в CSS. Надеюсь я донес свою мысль вполне ясно.function ___pause(ms) { var date = new Date(); curDate = null; do { var curDate = new Date(); } while ( curDate - date < ms); };Пример использования второго сниппета.
а есть примеры по замене текста внутри ссылки ?
Раз можно любые вопросы о jQuery...
Как можно сортировать строки в таблице? Типа: по дате, по имени и тд.
Спасибо.
специально для этой цели есть хороший плагин TableSorter.
Надеюсь документация будет понятна, если нет - мы можем расширить этот вопрос на статью.
А вообще, для вопросов у нас спецовый раздел.
TableSorter уже нашёл, и есть ещё frequency decoder.
Но хочется хоть маленько понимать, что происходит. Пока, для меня код jQuery - фарш...
Нашёл ешё такую инфу, думаю начать копать оттуда.
Статья это хорошо, если вам интересно, а то для моей скромной персоны - черезчур :).
Спасибо.
по клику на баттон
и все. форма сабмитнулась на два урла. И даже страница не перезагрузилась. :)
А если с перезаугрзкой то
тоесть аяксом сабмитишь форму на лог пхп а потом по саксесу аякса сабмитишь форму. У формы имя formname ну и экшн на index.php
ps одинарные кавычки забекслешились... ну это не я.