jQuery .append () Des données JSON dans une liste jQuery Mobile ajoutant des doublons lorsque la page est actualisée?

J’ai besoin d’aide. Je ne trouve pas mon erreur. Pour une raison quelconque, je reçois un double lorsque j’ajoute un ul. J’ai créé une recherche AJAX qui recherche les résultats lors de la saisie des touches. Le problème est que lorsque je quitte la page, par exemple si je clique sur le profil et que je reviens, si je recherche le même mot clé, les résultats sont dupliqués. Ce qui est très bizarre parce que je vide () mon ul avant de taper quoi que ce soit. C’est peut-être quelque chose de très simple mais je ne le trouve pas.

Voici mon jQuery qui ajoute mon ul:

$(document).delegate("#search", "pageshow", function() { $("#search input").focus(function() { $("ul#search_list").empty(); $(this).val(""); localStorage.search = ""; }); $("#search input").keyup(function() { $("ul#search_list").empty(); localStorage.search = $("#search input").val(); var result = ""; $.ajax({ url: '/app/users/search/'+localStorage.search, dataType: 'jsonp', jsonp: 'jsoncallback', success: function(data) { $.each(data, function(i,item){ var result = '
  • ' + item.name + '

    ' + item.location + '

  • '; $("ul#search_list").append(result); $("ul#search_list").listview('refresh'); }); }, error: function(){ $("ul#relationships_list").text('Sorry, you dont seem to have any friends.'); } }); }); });

    Voici le code HTML ul qui est ajouté:

       

    Voici une capture d’écran de ce qui apparaît. Si vous voulez le visuel:

    iPhone Simulation jQuery Mobile

    Merci tout le monde!

    J’ai eu ce problème une fois où j’ai effacé les résultats sur la page masquer. Je ne sais pas quelle version de JQueryMobile vous utilisez, mais j’avais ce problème dans la version 1.0. L’événement ajax ne semble pas détruire la page sur pagehide, j’ai donc dû supprimer les éléments sur pagehide. Je ne sais pas si cela aide.

    Aucune de ces options n’a fonctionné. Mais j’ai trouvé une solution rapide qui supprime les doublons dans un ul. C’est la seule chose qui a fonctionné jusqu’à présent. Voici un lien vers la solution:

    jquery enlever les doublons li