2011-07-09 8 views
3

私はアンカーの問題があると言うのは恥ずかしいです。htmlアンカーは一度しか動作しません

<a name="map"></a> 

$("div.store_list").click(function() {   
    //do some stuff   
    location.href = location.href + '#map' 
}); 

最初のをやって、それが正常に動作しますクリック:

は、だから私はこのコードを持っています。とにURLの変更:

http://mydomain.local/stores#map 

第二には、次のURLの変更をクリックして、それは動作しません:

http://mydomain.local/stores#map#map 

任意の提案ですか?おかげで

答えて

2

問題を使用して解決しました再びジャンプすること、これが私のために働いています

onclick="location.hash=''; location.hash='#map';" 
4

を試してみてください。代わりにlocation.hashを試してください。

location.hash='#map' 
+0

これは1回のみ機能します。もう一度スクロールしてクリック機能を呼び出すと、アンカーは機能しません。単純に使用して解決... document.location = "#map"; –

0

あなたは、URLがすでに追加している値が含まれていないことを確認するためにチェックすることができます:document.location = "#map";

2
あなたがスクロールする場合

と必要性:

$("div.store_list").click(function() {   
    //do some stuff 
    if (location.href.indexOf('#map') == -1) {   
     location.href += '#map'; 
    } 
}); 
0

受け入れソリューションは、悲しいことに私のために動作しませんでした。アンカー値を最初に "#"に設定して、それを自分の望む場所に設定することで、Chromeで動作させることができました。

document.location.href = "#"; 
document.location.href = "#myAnchor"; 

これを実行すると、アンカータグを含むリンクをクリックするたびに発生します。

$(document).on('click', '.jump_to_instance', e => { 

    // Get anchor name 
    var anchorName = $(e.target).attr("href"); 

    // Set anchor to nothing first 
    document.location.href = "#"; 

    // Set to new anchor value 
    document.location.href = anchorName; 
}); 

<a href="#myAnchor">Click me to go to anchor, I should work multiple times</a> 

<div id="myAnchor">Will jump to here</div> 
関連する問題