Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Открывать таб по ссылке на нужной вкладке (https://javascript.ru/forum/dom-window/75361-otkryvat-tab-po-ssylke-na-nuzhnojj-vkladke.html)

рони 28.09.2018 16:20

Цитата:

Сообщение от Igorsrt
табы переключаются, якорь в адресной строке продолжает отображаться...

Цитата:

Сообщение от Igorsrt
нет, вот так не работает у меня... (якорь в ссылке пропадает, но и таб не переключается)

одно с другим не совпадает, может скопировали неудачно.

SuperZen 28.09.2018 16:25

я сам сверху писал )
var hash = location.hash.substr(1);


Цитата:

Сообщение от рони (Сообщение 495549)
почему без #?

) действительно, что это я

ладно, вроде бы забороли )

Igorsrt 29.09.2018 08:10

блин, тут еще один момент:
изначально класс "w--current" стоял на первом заголовке в самом html, после наших (ваших :) ) доработок я его убрал (т.к. скрипт по другому не работал)... теперь если просто зайти на страницу с табами (не по ссылке), то активный заголовок никак не выделяется визуально(т.к. нет у него css класса).
Получается нужно этот класс вернуть по умолчанию в разметку html и добавить в скрипт, что бы он его удалял при срабатывании
<script type="text/javascript">
    document.addEventListener('DOMContentLoaded', function () {
      var hash = location.hash.substr(1);
      hash && document.getElementById(hash).classList.add('w--current')
      history.replaceState(null, null, window.location.href.replace(/#.*$/, ''));//replace state
    })

</script>

думал, сам смогу, вставив в скрипт "$('#one').removeClass('w--current');" - но так он этот класс всегда удаляет (даже при переходе по обычной ссылке из меню)... нужно какое-то условие прописать

Igorsrt 29.09.2018 08:37

вот так вот сделал
<script type="text/javascript">
    document.addEventListener('DOMContentLoaded', function () {

      var hash = location.hash.substr(1);
	  if(hash){ $('#one').removeClass('w--current');}
      hash && document.getElementById(hash).classList.add('w--current')
      history.replaceState(null, null, window.location.href.replace(/#.*$/, ''));//replace state
    })

</script>

но, не уверен что это правильно )


Часовой пояс GMT +3, время: 05:58.