2013-12-16 70 views
0

我正在使用此JS在頁面上顯示/隱藏DIV,以阻止頁面變得太忙。問題是標題鏈接在頁面的中間,因此用戶很可能會在頁面上向下滾動。然後點擊鏈接會導致瀏覽器再次滾動到頂部。有沒有辦法阻止它?Javascript - 停止JS鏈接從單擊時滾動回頂端?

只需要一個額外的東西就是讓div顯示出來,就像滾動很好或淡入一樣,但這並不重要。謝謝!!

HTML鏈接:

<a href="#" onclick="toggle_visibility('content1');">Charity Partnership</a> 
    <div id="content1" class="alist" style="display:none;">Content</div> 

JS:

function toggle_visibility(id) { 
     var thelist = document.getElementsByClassName("alist"); 
     for (var i = 0; i < thelist.length; i++) { 
      thelist[i].style.display = 'none'; 
     } 
     var e = document.getElementById(id); 
     if (e.style.display == 'block') { 
      e.style.display = 'none'; 
     } else { 
      e.style.display = 'block'; 
     } 
    } 
+0

替換(帶'href =「javascript:;」')或刪除'href'標籤。 – putvande

+0

可能重複[使用空白鏈接但不能跳轉到頁首](http://stackoverflow.com/questions/20589549/use-a-blank-link-but-not-jump-to-top-of-頁面) – Quentin

+0

謝謝你,這工作,但它現在不那麼明顯,它是一個鏈接,因爲光標顯示文本熒光筆而不是手。有沒有辦法來解決這個問題? – MRC

回答

0

您可以取代你href="#"href="javascript:;"或刪除href標籤。

使用上一個解決方案,當您將鼠標懸停在鏈接上時,您將看不到手形光標。

我會去第一個解決方案,或者如果你想要去最後的解決方案,你可以添加a { cursor: pointer; }顯示比手。

2

讓您的javascript函數返回false:

function toggle_visibility(id) { 
     var thelist = document.getElementsByClassName("alist"); 
     for (var i = 0; i < thelist.length; i++) { 
      thelist[i].style.display = 'none'; 
     } 
     var e = document.getElementById(id); 
     if (e.style.display == 'block') { 
      e.style.display = 'none'; 
     } else { 
      e.style.display = 'block'; 
     } 
     return false; 
    } 

並使用在錨元素值:

<a href="#" onclick="return toggle_visibility('content1');">Charity Partnership</a> 
    <div id="content1" class="alist" style="display:none;">Content</div> 
+0

謝謝。我結束了使用href =「javascript :;」相反,它具有相同的效果,但你的作品也是如此。 – MRC

+0

不客氣,祝你好運: - ] – TGO

相關問題