ไม่แนะนำวิธีแก้ปัญหานี้อีกต่อไปเนื่องจากการเปลี่ยนแปลงพฤติกรรมของเบราว์เซอร์ ดูคำตอบอื่น ๆ
โดยทั่วไปหากมีการใช้จุดยึดเราจะเชื่อมโยงกับเหตุการณ์เลื่อนของหน้าต่าง แนวคิดที่ว่าเหตุการณ์เลื่อนแรกต้องเป็นของการเปลี่ยนตำแหน่งอัตโนมัติที่ทำโดยเบราว์เซอร์ เมื่อสิ่งนี้เกิดขึ้นเราจะทำการเปลี่ยนตำแหน่งของเราเองแล้วลบเหตุการณ์ที่ถูกผูกไว้ สิ่งนี้จะป้องกันไม่ให้การเลื่อนหน้าต่อมาจากการทำงานของระบบ
$(document).ready(function() {
if (window.location.hash) {
$(document).scroll( function() {
var hash = window.location.hash
var hashName = hash.substring(1, hash.length);
var element;
if ($(hash).length != 0) {
element = $(hash);
}
else if ($('a[name="' + hashName + '"]').length != 0)
{
element = $('a[name="' + hashName + '"]:first');
}
if (element != undefined) {
window.scrollTo(0, element.position().top);
}
$(document).unbind("scroll");
});
}
});