Jquery mobile listview – l’initialisation de la vérification est terminée

J’ai codé mon chemin dans un coin.

Je dois appeler listview("refresh") sur une liste, mais celle-ci n’a peut-être pas été initialisée au moment où j’appelle la méthode de rafraîchissement.

Existe-t-il un moyen de vérifier si le composant est initialisé ou non?

C’est l’erreur que j’obtiens:

ne peut pas appeler les méthodes sur listview avant l’initialisation

Lorsqu’un widget listview est initialisé, il reçoit la classe ui-listview . Nous pouvons donc tester pour cette classe si elle a été initialisée:

 //select the listview var $myUL = $('#my-ul-element'); //add a list-item to the listview $myUL.append('
  • I\'m New!
  • '); //check if the listview has the ui-listview class if ($myUL.hasClass('ui-listview')) { //this listview has already been initialized, so refresh it $myUL.listview('refresh'); } else { //this listview has not yet been initialized, so it gets initialized $myUL.listview();//or you can use .sortinggger('create'); }

    Cela devrait aider à atténuer l’erreur que vous obtenez.

    De plus, la fonction .hasClass('[class]') renvoie true / false si l’élément a la [class] : http://api.jquery.com/hasClass

    Essayer

     $list.listview(); $list.listview('refresh'); 

    Pour moi, la solution à ce message a été d’append data-role="listview" à mon élément ul . Je pourrais ensuite utiliser la méthode .listview('refresh') dans mes gestionnaires d’événements.

    vous pouvez simplement créer une variable globale

    var is_mobile_init = false;

    au sumt de vos scripts. puis définissez-le sur true après avoir inclus jquery mobile.

    puis avant de rafraîchir écrire,

     if (is_mobile_init) $myUL.listview('refresh'); 

    De cette façon, vous n’avez pas besoin de suivre toutes les classes et c’est intuitif