Ответ 1
Вам не нужен jQuery для этого, вы можете получить/установить имя привязки с помощью location.hash
. Если вы поместите его в свою готовую функцию jQuery, вы можете сделать какое-либо действие, если оно установлено на определенное значение:
$(function(){
// Remove the # from the hash, as different browsers may or may not include it
var hash = location.hash.replace('#','');
if(hash != ''){
// Show the hash if it set
alert(hash);
// Clear the hash in the URL
location.hash = '';
}
});
Обратите внимание, что при удалении хэша конечный #
может оставаться в адресной строке. Если вы хотите ответить на живые изменения якоря, вы можете привязать обратный вызов к событию hashchange
:
$(document).bind("hashchange", function(){
// Anchor has changed.
});
Если вы хотите, чтобы ваша страница прыгала вверху при очистке якоря, вы можете привязать событие hashchange, чтобы вернуться к предыдущей позиции прокрутки. Посмотрите этот пример: http://jsfiddle.net/yVf7V/
var lastPos = 0;
$('#on').click(function(){
location.hash = 'blah';
});
$('#off').click(function(){
lastPos = $(window).scrollTop();
location.hash = '';
});
$(window).bind('hashchange',function(event){
var hash = location.hash.replace('#','');
if(hash == '') $(window).scrollTop(lastPos);
alert(hash);
});