2009-01-29 11 views
1

J'ai cette table où est initialement vide. Puis quand le document est prêt, j'appelle une fonction qui exécute une requête AJAX pour le contenu de la table. Le contenu initial est trié de manière géniale! Mais quand j'appelle à nouveau ma fonction avec différents paramètres pour obtenir un nouveau contenu, les choses commencent à aller mal. La table se remplit très bien avec le nouveau contenu, mais en cliquant sur sur une colonne d'en-tête pour trier, le contenu de la table redevient lorsque la page a été chargée et que le tri s'arrête également.JQuery Tablesorter numéro

Ceci est l'extrait de code que j'utilise. va utiliser $ ('. Tablesorter'). Trigger ("update") aide? À quel moment devrais-je faire un appel à cela?

jQuery(".tablesorter > tbody").load(path, function(){ 
    jQuery(".tablesorter").tablesorter({ 
        onRenderHeader: function(){ 
        this.wrapInner("<span></span>"); 
       } 
       , widthFixed: true 
       , widgets: ['zebra','hovering','selected'] 
       , debug: true 
       }); 
} 

Merci, MM

+0

Comment est votre nouveau contenu mis dans la table après que vous obtenez de votre requête AJAX? –

+0

J'utilise jQuery ("# tablename> tbody"). Charge (chemin, function() {} où "chemin" est l'URL pour l'appel ajax –

Répondre

2

je crois que vous aurez besoin d'utiliser livequery pour laisser tablesorter savoir sur le nouveau contenu ajax.

Celui-ci m'a pris un certain temps pour envelopper ma tête, mais au fond, cela devrait fonctionner, après que vous incluez les livequery js:

$("#table").livequery(function(){ 
    $(this).tablesorter({ 
    ... 
    }) 
}); 

Noah

0

Si vous n'êtes pas en mesure de déclencher les widgets appelez cette méthode $("Table").trigger("applyWidgets");

Ceci assurera tous les widgets comme les effets de zèbre, planant etc. sera activé.

0
include $("#table_name").tablesorter(); in ajax call. 

Vous devez raccorder la fonctionnalité de tablesorter via un appel ajax.

Le nouveau contenu de la table aurait également une fonctionnalité de tri si vous raccordez de cette manière.

0

Il suffit d'utiliser

$(".tablesorter").livequery(function(){ 
    $(this).tablesorter({ 
    . 
    . 
    . 
    }); 
}); 
Questions connexes