2009-06-09 15 views
16

Ho problemi a provare a far funzionare questa funzionalità. Vorrei caricare automaticamente una scheda al caricamento della pagina. Ho usato il seguente codice.selezionando e caricando una scheda jquery a livello di programmazione

$tabs.tabs('select', 0); 

Tuttavia, ciò che sta accadendo è che sta selezionando solo e non caricarla (che i carichi tab tramite la tecnologia AJAX). È interessante notare che quando seleziono un'altra scheda e poi torno di nuovo alla prima scheda, allora si carica bene.

+0

solo per aggiungere, quando faccio la seguente quindi la prima scheda carica bene. $ tabs.tabs ('select', 1); $ tabs.tabs ('select', 0); Ma voglio davvero usare solo $ tabs.tabs ('select', 0); Qualche idea? –

risposta

17

Hai provato specificando la scheda selezionata al momento dell'inizializzazione:

var $tabs = $('.selector').tabs({ selected: 0 }); 

Dopo l'inizializzazione, si può fare questo per selezionare a livello di codice una scheda:

$tabs.tabs('option', 'selected', 0); 

EDIT: Questo funziona perfettamente per me:

var $tabs = jQuery("#tabDiv > ul").tabs({ selected: null }); 
$tabs.tabs("select", 0); 
+0

Ho provato tutti i suggerimenti su questa pagina e nessuno sta funzionando.Potrebbe essere perché ho una scheda annidata. Fondamentalmente, la scheda padre chiama una pagina che ha più schede e vorrei selezionare la prima scheda di questa pagina di schede figlio. La sua non funziona. Solo dopo aver selezionato un'altra scheda e dopo aver selezionato la prima scheda, sembra funzionare in modo programmatico. –

+0

Proprio così che tutti siano chiari. Seleziona la prima scheda ma non carica la pagina che dovrebbe caricare tramite ajax –

+0

Ok. Ho un pensiero in mente. Fammi sapere se questo ha un senso. Potrebbe essere che le schede jquery di default selezionino la prima scheda. In modo che quando si tenta programmaticamente di selezionarlo nuovamente, non lo carica? –

0

Non dimenticare di inserirlo in un $ (documento) .ready (funzione() {;}); costruire.

Sono sicuro che non è la causa del tuo problema, ma non può far male per essere sicuro che il tuo jQuery non stia funzionando finché tutto non è impostato per gestirlo.

+0

sì è dentro $ (documento) .ready –

0

Si dovrebbe essere in grado di chiamare:

$tabs.tabs('load', 0); 

dopo aver selezionato per caricare i dati.

+0

Pensavo che selezionare una scheda potesse anche caricarlo. –

+0

L'ho provato comunque e nope continua a non funzionare. Solo dopo aver selezionato un'altra scheda e poi tornare indietro per selezionare la prima scheda sembra funzionare. Strano!!! –

2

Ho avuto lo stesso problema prima. La soluzione che avevo era chiamare le schede() due volte; una volta senza parametri; una volta con l'opzione select:

Es.

$("#tabs").tabs(); 
$("#tabs").tabs('select', 2); 
20

Ho solo una risposta a questa domanda per evitare che le persone si sviano con le funzioni deprecate.

La maggior parte delle risposte erano corrette al momento della domanda, ma la maggior parte di esse non si stava utilizzando nella nuova API.

provare il seguente codice Se si sta utilizzando una nuova API.

$(function() { 
    $("#tabs").tabs(); 
    $("#tabs").tabs("option", "active", 2); 
}); 

Per maggiori dettagli controlla seguente link.

http://jqueryui.com/upgrade-guide/1.9/#deprecated-select-method

+0

Io uso la tua soluzione, tuttavia, rompe solo le mie schede. Ho questa come una funzione $ (document) .ready (function() {$ (" #tabs") .tabs ("opzione", "attivo", 2); }); ma mostra il contenuto di tutte le schede in una volta – ShadowFlame

+0

Qual è la tua versione jquery? –

+0

Funzionerà con jquery 1.9 o successive –

0

Supponendo che si stava utilizzando la demo dalla pagina schede Jquery (http://jqueryui.com/tabs/#default). Puoi facilmente selezionare la scheda facendo clic sull'ancora. Basta trovare il tag di ancoraggio in base al nome della scheda in questo modo ...

$('a[href=#tabs-1]').click(); //selects the first tab 
Problemi correlati