Proprio per la complessità del widget, gli sviluppatori ci hanno messo a disposizione una nutrita serie di eventi con i quali interagire per controllare al meglio l'integrazione di tab con gli altri elementi dell'interfaccia e l'insieme dell'esperienza di navigazione:
click).Tutte le funzioni di callback associate agli eventi accettano come argomenti l'evento JavaScript nativo ed un oggetto ui con le seguenti proprietà:
Attraverso i metodi specifici per tab è possibile interagire via script con le schede gestite dal widget nonché gestirne il comportamento relativamente alle opzioni di caricamento e aggiunta dinamica di contenuti via AJAX:
add: attraverso questo metodo è possibile aggiungere una scheda al widget sia associandovi un contenuto già presente nel documento, sia caricandolo da remoto. Al momento non è ancora supportata la possibilità di caricare contenuti da siti esterni (AJAX cross domain).
Il metodo necessità di due argomenti: il primo di tipo stringa dev'essere un'ancora legata ad un contenuto presente nel documento oppure un URL da cui caricare in modo asincrono un frammento di HTML. Il secondo argomento obbligatorio è una stringa da utilizzare come testo della nuova etichetta. Opzionalmente è possibile passare un indice di tipo numerico per posizionare la nuova scheda in una posizione precisa del widget, che altrimenti sarà inserito in fondo (esempio).
//Carica una nuova scheda da un elemento con attributo
//name="nuovascheda"
$('#tabs').tabs('add','#nuovascheda','Nuova Scheda');
//Carica una nuova scheda da un URL del sito
$('#tabs').tabs('add','carica.php','Nuova Scheda');
//Cancella la prima scheda
$('#tabs').tabs('remove',0);
//Rendi attiva la terza scheda
$('#tabs').tabs('remove',2);
Proprio per la complessità del widget e la possibilità offerta di aggiungere, rimuovere e caricare schede dinamicamente, vi sono alcuni accorgimenti utili da seguire per garantire la migliore fruibilità dei contenuti ed una migliore consistenza nelle funzionalità del widget.
Anzitutto potrebbe essere necessario mantenere la navigazione dei link presenti in una scheda all'interno di quest'ultima, piuttosto che aprirli in una nuova finestra o nella finestra corrente. In tal caso si può ricorrere allo script seguente in fase di inizializzazione del widget:
$('#tabs').tabs({
load: function(event, ui) {
$('a', ui.panel).click(function() {
$(ui.panel).load(this.href);
return false;
});
}
});
In secondo luogo è importante sottolineare che ogni componente che richieda un calcolo sulle sue dimensioni durante l'inizializzazione non funzionerà se caricato in una scheda nascosta, poiché la scheda stessa è nascosta via CSS con display: none. Un accorgimento utile può essere quello di sovrascrivere il CSS nativo di jQuery UI con il seguente:
.ui-tabs .ui-tabs-hide {
position: absolute;
left: -10000px;
}
In modo da nascondere le tab inattive semplicemente spostandole al di fuori del viewport. In realtà questa soluzione non è sempre efficace in quanto molto legata allo specifico contesto del layout dell'applicazione.
PhantomJS, headless browser per test con JavascriptIl tool ideale per realizzare, da terminale, operazioni in remoto su... |
Creare e leggere QR Code in JavaScriptApplicazioni 'QR Code enabled' per il Web e per il mobile,... |
Jquery UI Map: web-mapping con Google Maps e jQueryUn plugin di jQuery UI per intefacciare applicaizoni Web/mobile con... |
Scrollorama e Scrolldeck, slideshow d'effetto con jQueryPlugin jQuery per ottenere Slideshow con diversi effetti di scrolling |
jCanvas, un primo semplice graficoAlla scoperta della libreria jCanvas, per semplificare il disegno e... |
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida Javascript: tecniche avanzateUna guida dal taglio pratico per approfondire la programmazione a... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |