Хитрости в jQuery
Надоели танцы с бубном WMODE ?
Забудьте о проблеме со слоями, когда flash-объекты перекрывают другие элементы верстки :)
Решение:
//Flash WMODE Fix
$('EMBED').each(function() {
if (!$(this).attr('wmode')) {
$(this).attr({'wmode':'opaque'});
}
});
$('OBJECT').each(function() {
var e = document.createElement('param');
e.setAttribute('name','wmode');
e.setAttribute('value','opaque');
$(this).append(e);
});
Ссылка в новом окне/вкладке
Вы еще используете атрибут target=blank для ссылок?
Решение:
$('a[rel$="external"]').click(function(){
this.target = "_blank";
});
*/ Пример:
<a href="http://www.ya.ru/" rel="external">ya.ru</a>
*/
Подсчет общего числа элементов
Решение:
$('element').size();
Предзагрузка изображений
Решение:
jQuery.preloadImages = function()
{
for(var i = 0; i<arguments.length; i++)
{
jQuery("<img>").attr("src", arguments[i]);
}
};
*/ Пример:
$.preloadImages("image1.gif", "/path/to/image2.png", "some/image3.jpg");
/*
Определение браузеров
Не хотите костылей для браузеров в CSS? Тогда вот вам костыли в jQuery :)
Решение:
//A. Цель Safari
if( $.browser.safari ) $("#menu li a").css("padding", "1em 1.2em" );
//B. Цель все выше IE6
if ($.browser.msie && $.browser.version > 6 ) $("#menu li a").css("padding", "1em 1.8em" );
//C. Цель IE6 и ниже
if ($.browser.msie && $.browser.version <= 6 ) $("#menu li a").css("padding", "1em 1.8em" );
//D. Цель Firefox 2 и выше
if ($.browser.mozilla && $.browser.version >= "1.8" ) $("#menu li a").css("padding", "1em 1.8em" );
Примечание: в jQuery 1.3 и выше $.browser считается устаревшим и не рекомендуется к использованию, вместо этого рекомендуется использовать $.support.
Удаление слов в тексте
Насрали в камментах и нет матотетера? Вот простое решение для замены слов на лету :)
Решение:
var el = $('#id');
el.html(el.html().replace(бля, "ъ**"));
Колонки одинаковой высоты
Решение:
function equalHeight(group) {
tallest = 0;
group.each(function() {
thisHeight = $(this).height();
if(thisHeight > tallest) {
tallest = thisHeight;
}
});
group.height(tallest);
}
/* Пример:
$(document).ready(function() {
equalHeight($(".recent-article"));
equalHeight($(".footer-col"));
});
*/
Изменение размера шрифта
Та самая "фишка", когда тычем в "а-А" и увеличиваем/уменьшаем шрифт на сайте :)
Решение:
$(document).ready(function(){
// Сбрасываем размер шрифта
var originalFontSize = $('html').css('font-size');
$(".resetFont").click(function(){
$('html').css('font-size', originalFontSize);
});
// Увеличиваем размер шрифта
$(".increaseFont").click(function(){
var currentFontSize = $('html').css('font-size');
var currentFontSizeNum = parseFloat(currentFontSize, 10);
var newFontSize = currentFontSizeNum*1.2;
$('html').css('font-size', newFontSize);
return false;
});
// Уменьшаем размер шрифта
$(".decreaseFont").click(function(){
var currentFontSize = $('html').css('font-size');
var currentFontSizeNum = parseFloat(currentFontSize, 10);
var newFontSize = currentFontSizeNum*0.8;
$('html').css('font-size', newFontSize);
return false;
});
});
Запрет вызова контекстного меню мышью
Просто и работает :)
Решение:
$(document).ready(function(){
$(document).bind("contextmenu",function(e){
return false;
});
});