css, html, php, javascript, jQuery, ajax … – решения, примеры, рецепты
29 Янв
В общем случае применение этого UI jQuery может быть и шире, но использование для построения навигационной панели – это первое, что приходит в голову. Такая панель хоть и имеет управление на JavaScript, управляется через имена селекторов, поэтому например поисковый робот «увидит» чистый HTML, а пользователь – элегантное меню. Посмотрим, как это может выглядеть и подробно разберем, как это работает. Внимание! Эта статья устарела! Новую статью можно почитать здесь.
Как обычно заглянем на сайт разработчиков. Вот, что написано там.
$("#example > ul").tabs();
В общем действительно просто, никаких дополнительных опций не используется. Здесь скорее придется потрудиться над стилевым оформлением навигационной панели. Но стилевое оформление – это другая тема. Давайте испытаем пример и разберемся, как все это работает.
Вы можете скачать исходный код примера, и при наличии библиотеки jQuery воспроизвести это пример на своем сайте.
Файлы необходимые для реализации подключаем в раздел HEAD, их всего два – это сама библиотека jQuery и файл ui.tabs.js
<script type="text/javascript" src="js/jquery-1.2.1.js"></script> <script type="text/javascript" src="js/ui.tabs.js"></script>
Стилевые таблицы упомяну вскользь, целиком их можно посмотреть в файле примера. Здесь можно творить, что душе угодно, не забывая проверить созданную Вами таблицу на совместимость с различными браузерами. Правда есть одно важное замечание: файл ui.tabs.js использует имена классов стилевой таблицы, поэтому, если Вы захотите использовать другие имена, Вам понадобится исправить и файл ui.tabs.js
Что касается HTML-кода – он тоже довольно прост. Если посмотрите исходные коды примера, то обязательно отметите, как четко он структурирован. Отдельно идет ненумерованный список разделов, отдельно блоки с содержимым разделов. В таком коде удобно разбираться, его удобно править при необходимости.
А вот интересующий нас более всего код, приведу без сокращений:
<script type="text/javascript">
$(document).ready(function(){
$("#menu > ul").tabs({
fxFade: true,
fxSpeed: slow
});
</script>
Как обычно все «завернуто» в $(document).ready(function(){…}); Дальше все так же просто, как и написано у разработчиков. Просто мы добавили еще пару опций.
fxFade: true – используем функцию «затухания» при переходе на другую вкладку.
fxSpeed: slow – и скорость этого затухания – медленная…
Это конечно далеко не все возможные опции. Наш горизонтальный список может реагировать на события click (щелчок по вкладке), hide (при скрытии вкладки), show (при открытии вкладки) выполнением пользовательских функций. Может переключаться не по клику мышкой, а по event: mouseover, можно задавать открывающуюся по умолчанию вкладку и конечно же во вкладки можно подгружать содержимое используя Ajax. Но о том, как просто работать с Ajax через jQuery я расскажу в отдельной статье.
Буду благодарен, если найдете возможность оставить свои отзывы…
Отзывов (27) на «Пользовательские интерфейсы jQuery: tabs – содержимое во вкладках.»
Спасибо большое, как раз нужны были такие вкладки.
Не просто спасибо, а очень огромное спасибо…
Можно сказать как нельзя кстати….
Спасибо огромное, очень интересно и доступно всё. Пишите ещё!
Спасибо большое автору за статью. Нашел ваш сайт по поиску, теперь обязательно буду постоянным посетителем
А не подскажете как сдлать чтобы ajax табы не перегружали содержимое при повторном переходе на уже загруженный таб контейнер? пробовал по аналогии с селектом так
$(‘.ui-tabs-nav’).bind(‘tabsload’, function(event, ui) {
return ($(‘#’+ui.panel.id+’ > div’).size() == 0)? true : false;});
(если внутри таб контейнера есть див подтянутый аджаксом то возвратить false)
но что-то не вышло.. грузит при каждом нажатии..
Наверное Вам стоит поискать решение в передаче ajax-запроса с некоторыми опциями. Обратите внимание например на такие опции как cache и ifModified.
http://docs.jquery.com/Ajax/jQuery.ajax#options
Спасибо автору за труд и за очень полезный сайт.
Дякую! Ваш ресурс як бальзам надушу девелоперів – самоучок!
Отличный сайт, спасибо.
Подскажите, пожалуйста, строчку, которая делала бы по-умолчанию открытой 2-ую вкладку.
$(«#example > ul»).tabs({ selected: 1 });
Не работает!
$(«#menu > ul»).tabs({
fxFade: true,
fxSpeed: ’slow’,
selected: 4
});
Эффект работает а selected нет. если эффект убрать не работает тоже. Есть ли выход?
Статья написана в январе 2008 года, когда последней версией библиотеки была насколько помню 1.2.1, а сейчас уже 1.2.6. Естественно, что почти за год довольно сильно изменился и плагин tabs. Посмотреть документацию можно тут: http://docs.jquery.com/UI/Tabs
Вылечилось скачиванием новой версии ui.tabs.js
Здравствуйте, а как заставить плагин запоминать в куки, какой таб я выбрал и потом оттуда считывать и автоселектить?=)
Скажите а чем отличается плагин Tabs который можно скачать на сайте jquery и нужно использовать только вместе с ядром ui.core.js от той что использовалась у вас?
Собственно это он и есть. Обратите внимание на дату статьи – более года назад. В то время он был таким, и версия самой jQuery была 1.2.1, тогда как сейчас уже 1.3.1
Вопрос:
При переключении таба в IE пропадает ClearType. Т.е. шрифт «худеет». Как от этого избавиться. Есть соображения?
Даже в вашем примере, Генадий, видно прохудение шрифта
p.s. IE7
Люди подскажите где скачать новую версию ui.tabs.js – а то ,ЧТО ТО я нигде не могу скачать – качаю с этого сайта (http://www.linkexchanger.su)- так версия этого скрипта не позволят переключать закладки т..е свойство selected:2 например не работает…
ГДе же мне скачать , подскажите…
Скачать тут: http://jqueryui.com/download
Демо тут: http://jqueryui.com/demos/tabs/
Спасибо!!!
как можно сделать что бы закладки располагались не горизонтально над блоком???, а вертикально, сбоку от блока, но принцип оставался тот же …
В принципе это возможно сделать, поработав как следует с файлом стилевого оформления – не меняя названий классов, изменить значения css-свойств.
Я наверно тормоз, но у меня первый таб не там выводится((( в другом диве. как поменять не пойму никак(
Вот здесь еще один из вариантов, используется Ajax и PHP шттп: cleverscript.blogspot.com
Вот еще несколько вариантов табов и вкладок на jQuery http://efimov.ws/main/develop/javascript/jQuery-tabs.html
Можно ли сделать, чтобы осуществлялся автоматический переход по табам через некоторое время???? Спасибо
Сделать можно. Для этого надо читать не устаревшую статью, а новую. Ссылка есть в начале статьи. А если что-то останется непонятным, можно обратиться за помощью на форум jQuery.
Оставьте отзыв