jQuery .append()jQuery Mobile列表中的JSON数据在刷新页面时添加重复项?

我需要帮助。 我找不到我的错误。 出于某种原因,当我追加ul时,我会得到重复的li。 我创建了一个AJAX搜索,用于在keyup上搜索结果。 问题是,当我离开页面时,例如,如果我点击个人资料并返回,如果我搜索相同的关键字,我会得到重复的结果。 这是非常奇怪的,因为我在输入任何内容之前清空()我的ul。它可能是非常简单但我无法找到的东西。

这是我的jQuery追加我的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.'); } }); }); });

    这是附加的HTML ul:

       

    这是显示内容的屏幕截图。 如果你想要视觉:

    iPhone模拟jQuery Mobile

    感谢大家!

    一旦我在页面隐藏上清除了结果,我就遇到了这个问题。 我不确定你使用的是什么版本的JQueryMobile,但我在1.0中遇到过这个问题。 ajax事件似乎没有破坏pagehide上的页面,所以我不得不删除pagehide上的元素。 我不知道这是否有帮助。

    这些选项都没有奏效。 但是我找到了一个快速解决方案,可以删除ul中的重复项。 到目前为止,这是唯一有效的方法。 以下是解决方案的链接:

    jquery删除重复的li