2010-05-17 57 views
8

我正在使用以下代碼將哈希標籤附加到URL的末尾。這樣,有人可以複製該網址並將其帶回該頁面,並且可以看到某些div。使用jquery停止默認哈希標籤行爲

$("a.live").click(function() { 
    window.location.hash = 'live'; 
    $("#live).slideDown(); 
}); 

在這個例子中,我有一個叫做「活」的div,這將是點擊一個鏈接的時候了slideDown,和「#live」添加到URL。然後我有代碼,當頁面加載顯示正確的div時檢查散列標籤。

我的問題是,如何防止瀏覽器在被調用時跳入「活」div?我不希望頁面向下滾動到div,只是希望它打開並添加hashtag,以便一個人可以複製它並返回到該div顯示的頁面。

任何提示?

謝謝!

+0

掛起,你的意思是什麼時候點擊了上面的鏈接,或者當頁面首次加載URL中存在的哈希值時? – karim79 2010-05-17 20:07:20

回答

8

試試這個:

$("a.live").click(function() { 
    window.location.hash = 'live'; 
    $("#live").slideDown(); 
    return false; // this will prevent default action 
}); 
8

這取決於。如果你想阻止它被點擊的錨時,使用此:如果你想防止它滾動到頁面時加載的哈希

$("a.live").click(function(e) { 
    e.preventDefault(); // Prevents browsers default action 
    window.location.hash = 'live'; 
    $("#live").slideDown(); 
}); 

,我不知道你將如何阻止。

2

我假設你有你,你說用它來打開DIV的文檔準備事件的一些代碼?如果是的話,我建議你在散列中爲ID添加一個前綴(如#_live),以便在文檔中找不到ID,從而防止瀏覽器自動滾動到該元素,然後修改代碼以刪除當你拿起它的前綴。

我在暗示這個'黑客',因爲我不認爲你可以使用JavaScript來阻止瀏覽器行爲,至少當然不可靠的跨瀏覽器解決方案。