La table de mise à jour JQuery Mobile via AJAX et le basculement de colonne ne fonctionnent plus

Je crée une petite application à l’aide de JQM 1.4.2 et je rencontre un problème de mise à jour d’une table sans actualisation de page à l’aide de ajax. Cela fonctionne bien et ma table (la table entière) est mise à jour MAIS après une mise à jour, data-mode='columntoggle' ne fonctionne plus – le bouton est présent mais les sélections que vous faites pour afficher les colonnes ne fonctionnent plus du tout.

Quelqu’un peut-il penser à une raison pour laquelle cela se produirait? Code ci-dessous:

Page d’accueil

  

Visual Check

page de tableau (ive enlevé une charge de php d’ici pour faciliter la lecture !!):

  echo"
Unit No. Size Code Size Week Rate Month Rate Overlocked Visual Check Status
" . $row['unitno'] . " " . $row['sizecode'] . " " . $row['usize'] . " " . $row['wrate'] . " " . $row['mrate'] . " " . $row['overlocked'] . " " . $row['visual'] . " " . $row['description'] . "

Cliquez sur le bouton Modifier pour ouvrir une fenêtre contextuelle qui, lorsque vous fermez, réécrit le tableau avec les informations mises à jour. ajax pour recharger la table sans actualiser la page entière:

  function LoadVisualUnitTable() { $.post('unit_DisplayVisualTable.php', 'unitSearchBox=&choiceUnitSearch=&choiceDeletedUnit=&selectSiteUnit=&choiceUnitSearchCri=&selectUnitStatus=&sid=RI201310111345581600', function(data) { $("#visualUnitTable").html(data); // $("#visualUnitTable").sortinggger('create'); // }); return false; }; 

Je pensais que je devais peut-être recharger ligne par ligne – des idées à ce sujet? Sinon, toutes les idées seraient appréciées! Merci

Il semble que jQM conserve le menu contextuel avec la liste des colonnes du premier chargement de la table. Par conséquent, il ne recrée pas la liste après les chargements suivants. Il existe probablement un moyen plus «officiel» de le faire, mais une solution rapide consiste à supprimer le menu contextuel dynamic du DOM chaque fois que vous actualisez le tableau:

 $("#visualUnitListTable-popup-popup").remove(); $("#visualUnitTable").html(data).enhanceWithin(); 

Étant donné votre identifiant de table de visualUnitListTable , jQM crée une fenêtre contextuelle avec un identifiant de visualUnitListTable-popup-popup , afin que vous puissiez appeler remove () sur cet élément juste avant de mettre à jour le code HTML de la table.

Voici une démo