У меня есть тикер новостей, в который я добавил 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>
Проверьте событие окна, onhashchange
.
Вы хотите прослушать событие window.onhashchange
.
https://developer.mozilla.org/en-US/docs/Web/API/Window.onhashchange
if ("onhashchange" in window)
просто проверит, существует лиwindow.onhashchange
(т.е. поддерживает ли это событие ваш браузер). Вы должны фактически связать его с какой-либо функцией, установив ее непосредственноwindow.onhashchange = restartTicker;
или добавление прослушивателя событийwindow.addEventListener("hashchange", restartTicker, false);
,