Как сделать ссылки моим Tab-ам
Есть страница moysite.ru/about
Мне нужно использовать ссылку <a href""></a> для того чтобы открывался определенный Tab. В самом js по умолчанию открывается tab[1] путем добавления класса "whiteborder" Я не знаю как нужно правильно добавить #tab2 или #tab3 в адресную строку чтобы открылся второй или третий Tab Можно использовать якоря id или class которые уже есть.. Есть табы и есть JS выборка. Написал в редакторе пример: МОЙ ПРИМЕР! Я знаю что большинство из Вас опытные, подскажите новичку, Я уже прочитал и про window.location.hash.replace("#","") и про якоря.. Но вот убей не понимаю КАК ЭТО РЕАЛИЗОВАТЬ??? Буду благодарен за помощь) |
расскажите подробней что именно нужно сделать.
|
Цитата:
Мне нужно использовать ссылку <a href""></a> для того чтобы открывался определенный Tab. В самом js по умолчанию открывается tab[1] путем добавления класса "whiteborder" Я не знаю как нужно правильно добавить #tab2 или #tab3 в адресную строку чтобы открылся второй или третий Tab Можно использовать якоря id или class которые уже есть.. Может как то так: $(document).ready(function(){ $('a[href^="/about#"').click(function(){ var loc = window.location.hash.replace("#",""); if (loc == "") {loc = "tab2"}... |
нужно чтобы вкладка переключалась по нажатию на ссылку, или по отслеживанию изменений в адресной строке?
|
Цитата:
|
Цитата:
то тогда можно будет делать в ссылке ...#tab2 или ...#tab3 и она будет меняться? если будет меняться тогда по отслеживанию... |
Цитата:
|
<html> <head> <style type="text/css"> body{ margin: 0; padding: 0; } .main{ width: 960px; margin: 10px auto 0 auto; background: white; padding: 30px; border: 1px solid #adaa9f; } ul, div{ margin-bottom: 10px; } .main>div{ padding: 10px; border: 1px solid #eaeaea; display: none; } .main div:target{ display: block; } </style> </head> <body> <div class="main"> <ul> <li><a href="#id1">Блок 1</a></li> <li><a href="#id2">Блок 2</a></li> <li><a href="#id3">Блок 3</a></li> <li><a href="#id4">Блок 4</a></li> </ul> <div id="id1">Текст 1</div> <div id="id2">Текст 2</div> <div id="id3">Текст 3</div> <div id="id4">Текст 4</div> </div> </body> </html> пример с таргет! |
j0hnik,
строка 27 зачем? |
Цитата:
|
Цитата:
И как тогда ссылаться на нужный таб? moySite.ru/about#id1 moySite.ru/about#id2 moySite.ru/about#id3 так? и оно будет работать? |
Цитата:
или вам подгрузка контента с других страниц нужна? если да то iframe , ajax или чем то подобным |
Цитата:
Спасибо!) поставил работает.) Если не разберусь с JS то использую Ваш Вариант. А если с JS заморочиться и сделать через якоря и проверки: window.location.hash.replace("#",""); это намного сложнее? |
нет, но css в данном случае выгодней.
|
Цитата:
если все реализовать по Вашему примеру - как тогда при нажатии на ссылку <a></a> сделать так чтобы она выделялась красным, а все остальные были серыми? Как это сделать с input понятно, а как это сделать с div в котором <a></a> вот в таком дереве: <div class="tabflex"> <div class="tab"><a href="/about#id1">Блок 1</a></div> <div class="tab"><a href="/about#id2">Блок 1</a></div> <div class="tab"><a href="/about#id3">Блок 1</a></div> </div> |
Цитата:
$('.tabflex .tab a').click(function(){ $(this).css('color', 'red').parent().siblings('.tab').children('a').css('color', 'gray'); }); айдишники уже заняты div-ами |
Цитата:
|
Цитата:
|
:write:
var a=$(".tabflex .tab a");a.click(function(){a.css("color","gray");$(this).css("color","red")}); |
Цитата:
var a=$(".tabflex .tab a"); a.click(function(){ a.css("color","gray"); $(this).css("color","red") }); ох ты как хитро придумал :blink: |
Рони ,а сможешь в "настоящую" строку?
|
j0hnik,
так? $(".tabflex").on("click","a",function(a){$("a",a.delegateTarget).css("color",function(){return a.target==this?"red":"gray"})}); |
а если фигурная скобка тоже = перенос строки
|
j0hnik,
пас |
Цитата:
|
j0hnik,
не понимаю вас с поста №21 |
Цитата:
при нажатии на ссылку <a></a> сделать так чтобы она выделялась красным, а все остальные были серыми? <div class="tabflex"> <div class="tab"><a href="/about#id1">Блок 1</a></div> <div class="tab"><a href="/about#id2">Блок 1</a></div> <div class="tab"><a href="/about#id3">Блок 1</a></div> </div> нужно решить задачу в одну строчку, без фигурных скобок, и точка с запятой ; допускается только в конце этой строки. |
Цитата:
|
[].forEach.call(document.querySelectorAll('.tabflex .tab a'), (el) => el.addEventListener("click", () => $(el).css('color', 'red').parent().siblings('.tab').children('a').css('color', 'gray'))); Как вам такой гибрид? ;) |
Цитата:
|
Часовой пояс GMT +3, время: 11:54. |