|
<!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <script src='http://code.jquery.com/jquery-latest.js'></script> <style type='text/css'> .box { display: none; padding: 0px !important; background-color: #FFF; } .box.visible { display: block; padding: 10px; } ul.tabs { height: 27px; background: #FFF; border-bottom: 1px solid #777; padding: 0 4px; overflow: hidden; list-style: none; } .tabs li.current, .tabs li:hover { background-color:#52c8ff; color:#FFFFFF; border-color:#52c8ff; border-left-style: solid; border-right-style: solid; border-top-style: solid; } .tabs li { float: left; color: grey; line-height: 27px; margin-right: 1px !important; padding: 0 7px 10px 8px !important; font-weight: bold; cursor: pointer; } .tabs li.current span { color: #FFF; } .tabs li span { float: left; padding: 0 11px 0 0; height: 27px; color: #FFF; } </style> <script type='text/javascript'> $(function () { $('ul.tabs').delegate('li:not(.current)', 'click', function () { act(this); }) function act(Obj){ $(Obj).addClass('current').siblings().removeClass('current'); var tabId = ($(Obj).index() + 1).toString(); $('.info').html('Здесь какая-то информация ' + tabId); $('.pict').html('Здесь потом будет картинка ' + tabId); $('.add').html('А здесь еще какая-то информация ' + tabId); }; }) </script> </head> <body> <div class="section"> <div class="box visible"> <div class='info'>Здесь какая-то информация 1</div> <div class='pict'>Здесь потом будет картинка 1</div> </div> <ul class="tabs"> <li class="current">Вкладка 1</li> <li>Вкладка 2</li> <li>Вкладка 3</li> </ul> <div class='add'>А здесь еще какая-то информация 1</div> </div> </body> </html> |
Igorsrt,
для структуры <div class="tabs"> <ul> <li>1</li> <li>2</li> <li>3</li> </ul> <div> new 1 </div> <div> new 2 </div> <div> new 3 </div> </div> <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .tabs > div { display: none; } .tabs > ul > li.current { background-color: #52C8FF; } .tabs > ul > li { display: inline-block; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { $(".tabs").each(function(indx, el) { var li = $(">ul>li", el), divs = $(">div", el); li.on("click", function(event) { event.preventDefault(); var i = li.index(this); li.not($(this).toggleClass("current")).removeClass("current"); divs.not(divs.eq(i).toggle()).hide() }) }) }); </script> </head> <body> <div class="tabs"> <ul> <li>One</li> <li>Two</li> <li>Three</li> </ul> <div> <div class="tabs"> <ul> <li>1</li> <li>2</li> <li>3</li> </ul> <div> new 1 </div> <div> new 2 </div> <div> new 3 </div> </div> </div> <div> test 2 add tabs </div> <div> test 3 add tabs </div> </div> </body> </html> |
Igorsrt,
http://api.jqueryui.com/tabs/ |
что-то, я не понял... или это не то (
В первом случае (коде Рони), весь контент "засунут" в скрипт и к нему подставляется ID таба? |
Цитата:
|
Igorsrt,
Цитата:
Весь контент + ID таба засунут в скрипт для примера. У вас откуда появляется контент в табах? В скрипте по конкретному ID таба можно брать контент с сервера или выбирать из заранее загруженного массива - совершенно необязательно иметь для каждого таба заранее расписанный html |
Цитата:
контент в табах появляется из php функции... насколько я понимаю, весь "геморой" в "моем" коде возникает из-за того что разным элементам li в раных div присвоены разным классам... Можно сделать так, что бы функция js "очищала" все элементы на странице (кроме нужного) от класса current? |
Igorsrt,
Цитата:
Насчет очистки - удалите сначала класс у всех, потом назначьте нужному. |
Цитата:
контент в табах появляется из php функции... насколько я понимаю, весь "геморой" в "моем" коде возникает из-за того что разным элементам li в разных div присвоены разные классы... Можно сделать так, что бы функция js "очищала" все элементы на странице (кроме нужного) от класса current? |
Часовой пояс GMT +3, время: 15:21. |