Sto utilizzando l'interfaccia utente di JQuery per creare schede nella mia applicazione. Avevo bisogno che le schede fossero collegabili (collegamento diretto che apre la pagina e seleziona la scheda corretta). Questo viene fatto usando un tag hash/fragmented identifier. Ma ho un problema quando il contenuto sopra le schede e all'interno delle schede è molto lungo.Prevenzione dello scorrimento quando si utilizza l'hash dell'URI per identificare la scheda
Quando si fa clic sulle schede, la pagina scorre verso il basso fino all'inizio della scheda. Questo non è quello che voglio.
Sto utilizzando Jquery 1.7.1 e Jquery UI 1.8.16.
Il codice javascript/Jquery è una scheda dell'interfaccia utente Jquery standard con l'aggiunta all'evento "tabsshow". Ciò è suggerito a Changing location.hash with jquery ui tabs (StackOverflow questione) e JQuery UI Tabs: Updating URL with hash while clicking the tab (blog - Tech Diario da Robin)
$(document).ready(function() {
$("#tabs").tabs();
/**
* Add hash to URL of the current page
*
* http://chwang.blogspot.com/2010/02/jquery-ui-tabs-updating-url-with-hash.html
* https://stackoverflow.com/questions/570276/changing-location-hash-with-jquery-ui-tabs
*/
$("#tabs").bind('tabsshow',function(event, ui) {
window.location.hash = ui.tab.hash;
});
});
Il seguente codice HTML può essere utilizzato per testare il comportamento
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
<div style="height: 400px;">Some other content</div>
<div id="tabs" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
<li class="ui-state-default ui-corner-top"><a href="#tab_1"><span>Tab 1</span></a></li>
<li class="ui-state-default ui-corner-top"><a href="#tab_100"><span>Tab 100</span></a></li>
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a href="#tab_1000"><span>Tab 1000</span></a></li>
</ul>
<div id="tab_1" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide">
<table style="height: 1000px"><tr><td>Hello. This is tab 1</td></tr></table>
</div>
<div id="tab_100" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide">
<table style="height: 1000px"><tr><td>Hello. This is tab 100.</td></tr></table>
</div>
<div id="tab_1000" class="ui-tabs-panel ui-widget-content ui-corner-bottom"><h2>Heading</h2>
<table style="height: 1000px"><tr><td>Hello. This is tab 1000.</td></tr></table>
</div>
</div>
Quando si apre la pagina con il seguente URL, si dovrebbe avere la scheda 1 aperta e non scorrere verso il basso fino a dove inizia la scheda. Lo stesso vale per fare clic su una delle schede.
file.html#tab_1
possibile duplicato del [JQuery UI Tabs Causando schermo di "saltare"] (http://stackoverflow.com/ domande/243794/jquery-ui-tabs-causare-screen-to-jump) –
Non è lo stesso, ma molto simile. – HNygard