Написал пару плагинов по jQuery, чтобы немного облегчить себе верстку и кодинг.
Возможно, кому-то они окажутся полезными. Их код навеян постами, найденными на просторах Интернета, а затем, ввиду частой используемости, оформлен как плагины.
Первый — jquery.outlinefix.js. Используется для удаления раздражающих рамок с ссылок, являющихся якорями (например, <a href="#">ссылка</a>).
Проблема:
(у ссылок после клика остается рамка)
Сразу отмечу, что решить ее можно и используя css (например, так css-tricks.com/removing-the-dotted-outline), но только не в IE6 и IE7, плюс решение этой проблемы через css отнимает у пользователя возможность использовать клавиатуру для навигации (он не увидит, какой элемент выбран). А так как все еще остается доля платежеспособного населения и офисов с таковым браузером — проблема должна быть решена полноценно.
Итак, пример использования плагина:
Исходный код плагина:
Второй — jquery.parentn.js. Используется для выборки родительского элемента на несколько уровней выше текущего. Мне очень не нравились конструкции типа parent().parent().parent() и хотелось описывать это как-то лаконичнее, я нашел код функции parentn() на сайте jquery в комментариях — но он не работал, я сделал работоспособным и оформил в плагине, чтобы можно было легко подключать к своим проектам.
Пример использования:
Исходный код плагина:
Бонус
Зачастую, плагины подключаются прямо в head'е страницы и плодят кучу запросов на веб-сервер, что нерационально. Логичным было бы javascript'ы объединять в один и проходится по ним каким-нибудь компрессором, например, YUICompressor.
Я использую для сжатия css и js ant-скрипт, сделанный на базе скрипта Сергея Чикуенка из Техногрета на сайте Студии Артемия Лебедева:
www.everfall.com/paste/id.php?v5fxzfpdom72
Чтобы приспособить скрипт для своих нужд, достаточно поменять названия файлов, а также указать корректный путь к .jar файлу YUICompressor'а, не забыв попутно рядом с ним положить .jar-файл ant-task'а для YUICompressor'а — YUIAnt.jar.
Возможно, кому-то они окажутся полезными. Их код навеян постами, найденными на просторах Интернета, а затем, ввиду частой используемости, оформлен как плагины.
Первый — jquery.outlinefix.js. Используется для удаления раздражающих рамок с ссылок, являющихся якорями (например, <a href="#">ссылка</a>).
Проблема:
(у ссылок после клика остается рамка)
Сразу отмечу, что решить ее можно и используя css (например, так css-tricks.com/removing-the-dotted-outline), но только не в IE6 и IE7, плюс решение этой проблемы через css отнимает у пользователя возможность использовать клавиатуру для навигации (он не увидит, какой элемент выбран). А так как все еще остается доля платежеспособного населения и офисов с таковым браузером — проблема должна быть решена полноценно.
Итак, пример использования плагина:
$('a.left-menu-pic').outlinefix();
Исходный код плагина:
(function($){ $.fn.outlinefix = function(){ return this.live('mousedown', function(e) { e.target.blur(); e.target.hideFocus = true; e.target.style.outline = 'none' }).live('mouseout', function(e) { e.target.blur(); e.target.hideFocus = false; e.target.style.outline = null; }); } })(jQuery);
Второй — jquery.parentn.js. Используется для выборки родительского элемента на несколько уровней выше текущего. Мне очень не нравились конструкции типа parent().parent().parent() и хотелось описывать это как-то лаконичнее, я нашел код функции parentn() на сайте jquery в комментариях — но он не работал, я сделал работоспособным и оформил в плагине, чтобы можно было легко подключать к своим проектам.
Пример использования:
$('a.left-menu-link').each(function() { $(this).hover(function() { $(this).parentn(2).find("td:first a.left-menu-pic").css("background-position", "0 -59px"); }, function() { $(this).parentn(2).find("td:first a.left-menu-pic").css("background-position", "0 0"); }); });
Исходный код плагина:
(function($){ $.fn.parentn = function(n){ var $target = $(this[0]); for (var i = 0; i < n && $target; i++) { $target = $target.parent(); } return $target; } })(jQuery);
Бонус
Зачастую, плагины подключаются прямо в head'е страницы и плодят кучу запросов на веб-сервер, что нерационально. Логичным было бы javascript'ы объединять в один и проходится по ним каким-нибудь компрессором, например, YUICompressor.
Я использую для сжатия css и js ant-скрипт, сделанный на базе скрипта Сергея Чикуенка из Техногрета на сайте Студии Артемия Лебедева:
www.everfall.com/paste/id.php?v5fxzfpdom72
Чтобы приспособить скрипт для своих нужд, достаточно поменять названия файлов, а также указать корректный путь к .jar файлу YUICompressor'а, не забыв попутно рядом с ним положить .jar-файл ant-task'а для YUICompressor'а — YUIAnt.jar.