2013-12-17 49 views
0

我有一個新聞自動收錄器,我添加了hrefs來充當html名字的錨。 一旦你點擊一個href,url就會獲得添加到它的#name。 這裏是新聞股票與HREF #names ...當url有附加#名稱時的Javascript函數

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

除了我的自動收報器以外,其他所有的設置都會忽略所有設置,例如速度和不透明度。我的解決方案是使用一個函數來重置新聞報道,當#name被添加到網址。 所以最初的時候我的網址...

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功能?謝謝

編輯 我試着添加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(「window中的onhashchange」)將只檢查是否存在'window.onhashchange'(即如果你的瀏覽器支持這個事件)。你需要通過直接設置'window.onhashchange = restartTicker;'或者添加一個事件監聽器'window.addEventListener(「hashchange」,restartTicker,false)''將它綁定到某個函數。 –

+1

我試了window.onhashchange = restartTicker;這似乎與您注意到的一樣。我的問題是與jQuery。無關。謝謝。 – DDDD