Jquery mobile jQuery移动列表视图刷新

Jquery mobile jQuery移动列表视图刷新,jquery-mobile,Jquery Mobile,除了一个问题外,我在加载后使用动态构建的列表使listview刷新功能正常。列表中的最后一个标记未应用任何样式 刷新实际上将ui-btn-ui-btn图标右ui-li-ui角底部ui-btn-up-c类添加到倒数第二个标记中 你知道为什么会这样吗 附件是动态生成列表的函数: function createSidebarEntry(marker, name, phone, address, distance) { var saddr = document.getElementById('add

除了一个问题外,我在加载后使用动态构建的列表使listview刷新功能正常。列表中的最后一个
  • 标记未应用任何样式

    刷新实际上将
    ui-btn-ui-btn图标右ui-li-ui角底部ui-btn-up-c
    类添加到倒数第二个
  • 标记中

    你知道为什么会这样吗

    附件是动态生成列表的函数:

    function createSidebarEntry(marker, name, phone, address, distance) {
      var saddr = document.getElementById('addressInput').value;
      var li = document.createElement('li');
      var html = '' + name + ' (' + distance.toFixed(1) + ' miles)' + address + phone +'<a href="http://maps.google.com/maps?saddr='+ saddr +'&daddr=' + address +'" /></a>';
      li.innerHTML = html;
    
      $('#locationList').listview('refresh'); 
    
      return li;
    
    }
    
    函数createSidebarEntry(标记、姓名、电话、地址、距离){
    var saddr=document.getElementById('addressInput')。值;
    var li=document.createElement('li');
    var html=''+name+'(''+distance.toFixed(1)+'miles')+地址+电话+'';
    li.innerHTML=html;
    $('#locationList')。listview('refresh');
    返回李;
    }
    
    我对listview刷新功能(jqm 1.0 beta1)也有一些问题。 在IE8上,情况更糟

    因此,我的解决方案就是简单地检查jqm对
  • 标记所做的工作。
    并直接插入刷新后的html代码


    这不是一个优雅的解决方案,但它可以工作。

    从您的代码来看,您似乎在该函数之外向listview添加li,但您正在调用。listview('refresh');函数内部

    因此,它恰好适用于您的所有LIs,因为除了最后一个,因为始终是后面的LI使列表具有正确的外观和感觉

    解决方案:只需调用.listview('refresh')之后,您已将最后一个LI添加到此函数之外。它还具有提高性能的效果,因为只有在动态添加完所有新的LI元素后,您才会刷新listview。

    调用
    。listview(“刷新”)
    对我不起作用。它创建了一个基本列表,没有样式

    这就是我的工作原理:

    function updateData()
    {
        $.ajax({
            url: '@Html.Raw(ajaxUrl)',
            async: false,
            beforeSend: function () { $.mobile.showPageLoadingMsg(); },
            complete: function ()
            {
                $.mobile.hidePageLoadingMsg();
                $("ul:jqmData(role='listview')").listview();
            },
            success: function (data, textStatus, jqXHR)
            {
                $('#myDiv').html(data);
                $('#myDiv').trigger("create"); // *** THIS IS THE KEY ***
            }
        });
    }
    

    有时,您需要在调用刷新之前实例化listview视图

    Chrome应该会给你一个错误,说明你不能对一个未实例化的listview应用刷新

    你可以试试这个,它可能会解决你的问题(它为我解决了完全相同的问题)


    请编辑你的问题并添加一些你正在使用的代码正如Phill所说,请添加一些代码!另外,请确保验证您的标记:可能遗漏了一些愚蠢的内容,这意味着jQM无法执行
    列表视图。请正确刷新
    调用。感谢您的回复。我发布了负责创建列表的函数。我们还没有将整个脚本转换为jQuery,这将在将来出现。希望尽可能保持脚本的精简,因为它将被用作位置查找器,已经有一些重JS正在进行,这将使浏览器崩溃。
    
    $('#locationList').listview().listview('refresh');