2013-12-17 4 views
0

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

<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> 

ответ

1

Заканчивать событие окна, onhashchange.

+0

Является ли моя реализация закрытой? – DDDD

+1

'if (« onhashchange »в окне)' будет просто проверять, существует ли 'window.onhashchange' (т. Е. Если ваш браузер поддерживает это событие). Вам нужно привязать его к какой-либо функции, установив ее непосредственно 'window.onhashchange = restartTicker; 'или добавив прослушиватель событий' window.addEventListener («hashchange», restartTicker, false); '. –

+1

Я попробовал window.onhashchange = restartTicker; Кажется, это работает, как вы заметили. Моя проблема связана с jquery. Не по теме. Благодарю. – DDDD