Penso che questo potrebbe non essere possibile, cercherò di spiegare nel miglior modo possibile. Ho una pagina contenente schede (alimentata da jquery), controllata da quanto segue:
Sto usando questo codice, fornito da un altro utente da una domanda precedente.
<script type="text/javascript">
$(function() {
$('html, body').animate({scrollTop:0}); // this is my "fix"
var tabContent = $(".tab_content");
var tabs = $("#menu li");
var hash = window.location.hash;
tabContent.not(hash).hide();
if(hash=="") {
$('#tab1').fadeIn();
}
tabs.find('[href=' + hash + ']').parent().addClass('active');
tabs.click(function() {
$(this).addClass('active').siblings().removeClass('active');
tabContent.hide();
var activeTab = $(this).find("a").attr("href");
$(activeTab).fadeIn();
return false;
});
});
</script>
questo codice funziona alla grande quando visito direttamente la pagina "schede".
tuttavia, ho bisogno di collegarmi a schede individuali da altre pagine, quindi per fare ciò, il codice ottiene il window.location.hash
quindi mostra la scheda appropriata.
la pagina non "salta" all'ancora a causa di "return false".
tuttavia, questo evento viene attivato solo su un evento clic. quindi, se visito le mie "schede" da qualsiasi altra pagina, viene attivato l'effetto "salto". Per evitare questo, scorro automaticamente fino all'inizio della pagina, ma preferirei che non accadesse.
c'è un modo per simulare "return false" quando la pagina viene caricata, impedendo che si verifichi il "jump" di ancoraggio.
spero che questo sia abbastanza chiaro.
Grazie