【问题标题】:jQuery Mobile list view not refreshing after AJAX calljQuery Mobile 列表视图在 AJAX 调用后不刷新
【发布时间】:2014-04-05 05:09:17
【问题描述】:

我有一个 AJAX 调用,它从 JSON 数组中创建一个列表,但是当加载数据时,它没有视觉样式,并且刷新方法不起作用。

success: function (data, status, xhr) {
  value = " + data.OCC_FiltersObj_Cust[i].CustomerName + ">" + data.OCC_FiltersObj_Cust[i].CustomerName + "</option>" );
  //$("#filters").append("<optgroup id=" + data.OCC_FiltersObj_Cust[i].CustomerType + " label=" + data.OCC_FiltersObj_Cust[i].CustomerType + ">");
  for (var i=0, len = data.OCC_FiltersObj_Cust.length; i < len; i++) {
    if (i > 0 && data.OCC_FiltersObj_Cust[i].CustomerType === data.OCC_FiltersObj_Cust[i-1].CustomerType) {
      //Write the customer types
      $("#filters").append("<li>" + data.OCC_FiltersObj_Cust[i].CustomerName + "</li>");
    } else {
      //Write the customer names
      $("#filters").append("<li>" + data.OCC_FiltersObj_Cust[i].CustomerType + "</li>");
    }
  }
  $('#filters').listview('refresh');
},
complete: function (xhr, status) {
  $('#filters').listview('refresh');
},

正如您在我的代码中看到的那样,我尝试在成功和完成时调用刷新方法,但两者都不起作用。

编辑:当我将搜索过滤器添加到列表并在其中输入内容时,列表视图会刷新,但刷新方法不会刷新。如果这有什么不同的话,这个列表就在一个可折叠的里面。

【问题讨论】:

  • 你的意思是 CSS 样式吗?输出是什么样的? .listview('refresh'); 时会发生什么火灾?什么都没有?
  • 是的,上面没有 JQM css 样式。调用刷新时没有任何反应,它看起来仍然一样。
  • $('#filters') 是标记中的现有 UL,还是动态创建的?如果是动态的,请调用不带“刷新”的 .listview() 来初始化列表。
  • @ezanker #filters 是现有的 UL 标记,然后 ajax 调用使用列表填充它。

标签: javascript jquery html ajax jquery-mobile


【解决方案1】:

我不知道为什么,但是在“刷新”上添加一点延迟对我来说是诀窍。

你可以在你的 ajax 成功回调中做这样的事情。

setTimeout(function () {
    $("#filters").listview("refresh");  
}, 10);

【讨论】:

    【解决方案2】:

    jqm listview需要刷新动态内容

    所以在追加后使用此代码

    $("#listviewid").listview().listview("refresh");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多