これを行うと、
location.hash = "test"
URL が更新され、その ID を持つ要素にページが表示されます。
ページがその要素にホーミングするのを止める方法はありますか?
これを行うと、
location.hash = "test"
URL が更新され、その ID を持つ要素にページが表示されます。
ページがその要素にホーミングするのを止める方法はありますか?
この動作を防ぐことはできませんが、ターゲットを一時的に非表示にすることでだますことができます。そのように(jQueryとは関係ありません):
// obtain "target" DOM (not jQuery) element and do this:
var original_id = target.id; // save original ID
target.id = null; // set target's ID
location.hash = 'test'; // issue location.hash change
target.id = original_id; // set ID to original value
またはより一般的な例:
// make target_hash set to a hash you want to not lead you to page section and:
var element = document.getElementById(target_hash); // find element by ID
var original_id = element.id; // save original ID
location.hash = target_hash; // previously defined by you (eg. 'test')
element.id = original_id; // reset ID
ライブの例は、jQuery を介してアタッチされたイベント ハンドラーで次のようになります (デモはこちら: http://jsfiddle.net/DaZfH/ )。
some_link.on('click', function(event){
event.preventDefault();
var target = document.getElementById('target');
var original_id = target.id;
target.id = null; // unset ID
location.hash = 'target';
target.id = original_id;
});
しかし、実際には他の人も正しいです。ドキュメント内の正しい場所に移動することは正しい動作です。私が述べたようなことをしているなら、あなたの解決策はかなりハキーであり、それを行うためのより良い方法が間違いなくあります.