【问题标题】:jquery mobile listview refresh same list lose stylejquery mobile listview刷新相同的列表丢失样式
【发布时间】:2012-09-07 12:35:11
【问题描述】:

我正在尝试更新从一个列表传递到另一个列表的 ul 列表的内容。
第一个列表是从调用 ajax 请求的搜索表单生成的。它的样式正确。
对于第二个列表,我在列表上使用 empty() 并从第一个列表中获取要搜索的参数(通过 ajax)作为链接属性

$('.myLink').live("vclick", function() {
    var param= $(this).attr('id');
    ...

该功能正在运行。但是第二个列表没有 jquery mobile 样式。

在 pageshow 我正在刷新列表

$('#listID').listview('refresh');

但 pageshow 仅在我生成第一个列表时触发,而不是第二个(与第一个在同一 ul 中)。

我尝试了 pageinit、pagecreate、pagechange 和 pageshow,但是当我更新列表时它们都没有触发。

【问题讨论】:

    标签: javascript jquery css jquery-mobile


    【解决方案1】:

    在您更新其 HTML 后刷新列表。比如:

    $("#listID").append($("<li />").text("Some Text")).listview("refresh");
    

    这是一个演示:http://jsfiddle.net/R98La/

    【讨论】:

    • 感谢您的回复。我得到未捕获的错误:无法在初始化之前调用 listview 上的方法;试图调用方法“刷新”我已经尝试过那个(遗憾):(我还尝试添加 $("#listID").listview(); 在添加 li 元素然后调用刷新之前:同样的错误
    • @Ciack404 我不确定您在哪里运行代码,但该错误意味着小部件尚未初始化。您可能会发现此答案很有帮助:stackoverflow.com/questions/9493215/…
    • 固定更改整个项目:现在我有 2 个单页和 1 个多页。将列表放在一个页面中解决了这个问题。再次感谢
    • 在我检查了列表视图是否已经创建后为我工作。 if($("#listID").hasClass('ui-listview')) { $("#listID").listview('refresh'); }
    【解决方案2】:

    试试这个

    $('#listID').listview('refresh');
    $(".ui-page").trigger("create");
    

    【讨论】:

    • 感谢您的回答。问题是我无法在第二个列表中调用这些函数,因为它不会触发我在问题中提到的任何事件。在 vclick 上使用“create”不会改变任何东西。仍然没有 jquery 移动样式。
    • 对不起,我在上一条评论中误按了输入。现已编辑
    • 固定更改整个项目:现在我有 2 个单页和 1 个多页。将列表放在一个页面中解决了这个问题。再次感谢
    【解决方案3】:

    固定更改整个项目:现在我有 2 个单页和 1 个多页。将列表放在一个页面中解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2014-03-30
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      相关资源
      最近更新 更多