Vous n'avez pas vraiment besoin de jQuery pour cela, vous pouvez obtenir/définir le nom de l'ancre en utilisant location.hash
. Si vous le placez dans votre fonction jQuery ready, vous pouvez effectuer une action s'il est défini à une certaine valeur :
$(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's set
alert(hash);
// Clear the hash in the URL
location.hash = '';
}
});
Notez que lorsque vous supprimez le hachage, la terminaison #
pourrait rester dans la barre d'adresse. Si vous souhaitez répondre aux modifications en direct de l'ancre, vous pouvez lier une fonction de rappel à l'attribut hashchange
événement :
$(document).bind("hashchange", function(){
// Anchor has changed.
});
Si vous voulez éviter que votre page ne saute en haut de la page lorsque vous supprimez l'ancre, vous pouvez lier l'événement hashchange pour revenir à la position de défilement précédente. Regardez cet exemple : 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);
});