Ho recentemente sperimentato il plugin per i tablesorter per jQuery. L'ho installato e avviato con successo una sola volta e sono rimasto molto colpito. Tuttavia, ho provato ad applicare il tablesorter a una tabella diversa, solo per incontrare alcune difficoltà ...jQuery tablesorter - perdita di funzionalità dopo la chiamata AJAX
Fondamentalmente la tabella che causa un problema ha uno <ul>
sopra che funge da un insieme di schede per la tabella. quindi se si fa clic su una di queste schede, viene effettuata una chiamata AJAX e la tabella viene ripopolata con le righe pertinenti alla scheda specifica su cui si fa clic. Quando la pagina viene caricata inizialmente (ovvero prima che sia stata fatta clic su una scheda), la funzionalità del tablesorter funziona esattamente come previsto.
Ma quando si fa clic su una scheda e si ripopola la tabella, la funzionalità scompare, rendendola senza la funzionalità ordinabile. Anche se si torna alla scheda originale, dopo averne fatto clic su un'altra, la funzionalità non viene ripristinata - l'unico modo per farlo è un aggiornamento fisico della pagina nel browser.
Ho visto una soluzione che sembra simile al mio problema su questo sito, e qualcuno consiglia di utilizzare il plugin jQuery, livequery. Ho provato questo ma senza successo :-(
Se qualcuno ha qualche suggerimento sarei molto riconoscente. Posso pubblicare frammenti di codice se sarebbe d'aiuto (anche se so che il codice di istanza per tablesorter va bene come si lavora su tavoli senza schede - quindi non è sicuramente quello)
EDIT:! Come richiesto, ecco alcuni frammenti di codice:
la tabella da ordinare è <table id="#sortableTable#">..</table>
, il codice di istanza per tablesorter che sto usando è:
$(document).ready(function()
{
$("#sortableTable").tablesorter(
{
headers: //disable any headers not worthy of sorting!
{
0: { sorter: false },
5: { sorter: false }
},
sortMultiSortKey: 'ctrlKey',
debug:true,
widgets: ['zebra']
});
});
E ho cercato di mettere su livequery come segue:
$("#sortableTable").livequery(function(){
$(this).tablesorter();
});
Questo non ha aiutato anche se ... non sono sicuro se dovrei utilizzare l'ID del tavolo con livequery in quanto è il click sul <ul>
Dovrei rispondere, il che ovviamente non fa parte del tavolo stesso. Ho provato un certo numero di variazioni nella speranza che uno di loro aiuterà, ma senza successo :-(
i' Lo analizzeremo ora :-) –
prova il metodo trigger() come suggerito da elwyn, molto più efficiente della reinizializzazione dell'intera tabella. – soupasouniq
Grazie @soupasouniq Ci proverò. – simplyharsh