Функция Javascript, когда к URL добавлен #name

0

У меня есть тикер новостей, в который я добавил hrefs, которые выступают в качестве якорей для имен html. Как только вы нажмете на один href, url получит добавленное к нему имя #. Вот новостной тикер с href #names...

<div id="ticker-wrapper" class="no-js">
<ul id="js-news" class="js-hidden">
    <li>
        <a href="#boxone">text</a>
    </li>
    <li>
        <a href="#boxtwo">text</a>
    </li>
</ul>

Когда вы нажимаете одну из ссылок, она переходит к имени html, которое выглядит так...

<a name="boxone"></a>

Все работает хорошо, за исключением того, что мой тикер игнорирует все настройки, которые он имел, как скорость и непрозрачность. Мое решение состояло в том, чтобы использовать функцию для сброса тикета новостей, когда к URL-адресу добавлено #name. Поэтому, когда мой URL-адрес...

www.blah.com/users/1

Мой тикер новостей работает хорошо. Затем, если вы нажмете href в тике новостей, url изменится на...

www.blah.com/users/1#boxone

И все настройки титров новостей перестают работать. Моя функция сброса тикера...

<script type="test/javascript">
function restartTicker() {
  // play ticker
  settings.play = true;
  settings.paused = false;
  // start the ticker again
  postReveal(); 
}

Вопрос: Как вы называете функцию, когда #name добавляется в URL? спасибо

EDIT Я попробовал добавить onhashchange. Это верно? Мне интересно, не работает ли функция по желанию.

<script>
if ("onhashchange" in window) {

$.fn.ticker.defaults = {
    speed: 0.10,            
    ajaxFeed: false,
    displayType: 'fade',
    htmlFeed: true,
    debugMode: true,
    controls: true,
    titleText: 'Latest News: ',     
    pauseOnItems: 3000,
    fadeInSpeed: 300,
    fadeOutSpeed: 300
};  
}
</script>
Теги:

2 ответа

1
Лучший ответ

Проверьте событие окна, onhashchange.

  • 0
    Моя реализация близка?
  • 1
    if ("onhashchange" in window) просто проверит, существует ли window.onhashchange (т.е. поддерживает ли это событие ваш браузер). Вы должны фактически связать его с какой-либо функцией, установив ее непосредственно window.onhashchange = restartTicker; или добавление прослушивателя событий window.addEventListener("hashchange", restartTicker, false); ,
Показать ещё 1 комментарий
1

Вы хотите прослушать событие window.onhashchange.

https://developer.mozilla.org/en-US/docs/Web/API/Window.onhashchange

  • 0
    Моя реализация близка?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню