2012-10-17 164 views
4

如何防止每次單擊鏈接時頁面「跳起來」?例如,我在頁面中間有一個鏈接,當我點擊它時,頁面跳轉到頂部。單擊鏈接時阻止頁面跳轉到頂部

+2

請提供一些您的JavaScript或HTML的,所以我們可以幫助您更... – 2012-10-17 02:53:43

回答

4

讓我們假設,這是你的鏈接HTML:

<a href="#something" id="some_id">Some link goes somewhere...</a> 

如果您在使用jQuery,試試這樣:

$(document).ready(function() { 
    $('a#some_id').click(function(e) { 
     e.preventDefault(); 
     return false; 
    }); 
}); 

演示上:http://jsfiddle.net/V7thw/

如果你不jQuery的藥,嘗試用這種純DOM JavaScript

window.onload = function() { 
    if(document.readyState === 'complete') { 
     document.getElementById('some_id').onclick = function(e) { 
      e.preventDefault(); 
      return false; 
     }; 
    } 
}; 
+1

謝謝你的工作完美。 – user1683645

+1

請點擊答案投票數下面的「灰色檢查項目」,如果它最適合你,接受它:) – 2012-10-17 03:03:46

1

如果您將鏈接href屬性設置爲#,它將跳轉到頂部,因爲它正在查找錨定標記。只是離開href屬性,它不會去任何地方,但它也不會再看起來像一個鏈接(並確保即使在JavaScript中處理click,否則它真的沒有多大用處)。

另一種選擇是處理javascript和click事件處理程序中的click,取消默認操作並返回false。

e.preventDefault(); 
    return false; 
+1

如果他刪除「href」鏈接,它將不會被識別爲「可點擊」鏈接項目,請參閱我的小提琴:http://jsfiddle.net/z4gmw/ – 2012-10-17 02:55:15

+2

取決於您要做什麼。增加了關於如何取消默認操作的信息。 – Bill

+1

是的,我使用鏈接僅用於可點擊的屬性,我使用JavaScript作爲實際事件。我現在試試看,謝謝! – user1683645

4

是否定位href="#"?您可以改爲將其設置爲href="javascript:void(0);"

如果你打算在防止默認,請用這個來代替:

event.preventDefault ? event.preventDefault() : event.returnValue = false;