netaspid
@netaspid
web-developer

Как отслеживать изменения location.hash?

Добрый день.
Наметилась такая проблема:

1. Есть следующий html-код:

Обвертка для вывода модального окна:

<div class="modal" id="auto1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">

 <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
<h3 id="myModalLabel">{modalLabel}</h3>
</div>
<div class="modal-body">
<p>
{modalContent}
</p>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Закрыть</button>
</div>
</div>


И ссылка:

<a id="bhmenu1" class="bhmenu" href="#auto1" data-toggle="modal">
    Автоматизация документооборота
</a>


В данном случае, при нажатии на ссылку хеш передается в класс обвертки вывода модального окна как id
Проблема в том, что ссылок может быть несколько то есть:

href="auto1"
href="auto2"


И так далее.
Не хочется плодить сущности и для каждой ссылки делать свою обвертку - неправильно это.

Внимание вопрос: Как можно отловить изменение хеш-параметра который передается по ссылке и изменить id

Погуглив, толкового решения по отслеживанию изменения document.location.hash я не нашел, прошу пнуть в верном направлении.
  • Вопрос задан
  • 4892 просмотра
Пригласить эксперта
Ответы на вопрос 3
mlnkv
@mlnkv
JavaScript Developer
window.addEventListener('hashchange', hashchange);

function hashchange(){ 
  var hash = location.hash;
  /* do something */
}
Ответ написан
netaspid
@netaspid Автор вопроса
web-developer
туплю. можно с примером?
Ответ написан
Комментировать
@frees2
без хеша вроде давно пашет
$videoIdprint='<span onclick="ytplayer.loadVideoById(\''.$videoId.'\', 0);history.pushState(null, null, \''.$videoId.'\');return false">..........
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы