jQuery移动错误“;无法在初始化之前调用listview上的方法;

jQuery移动错误“;无法在初始化之前调用listview上的方法;,listview,jquery-mobile,Listview,Jquery Mobile,我正在动态填充一个,然后调用location.href=“#Results”列表所在的位置,最后调用列表视图(“刷新”) 所有这些都是在来自同一页面的Ajax请求的成功回调中完成的。它或多或少可以工作,但我得到以下错误: Uncaught cannot call methods on listview prior to initialization; attempted to call method 'refresh' 我猜jQuery mobile还没有构建listview。我能做什么? 您

我正在动态填充一个
,然后调用
location.href=“#Results”
列表所在的位置,最后调用
列表视图(“刷新”)

所有这些都是在来自同一页面的Ajax请求的成功回调中完成的。它或多或少可以工作,但我得到以下错误:

Uncaught cannot call methods on listview prior to initialization; attempted to call method 'refresh'
我猜jQuery mobile还没有构建listview。我能做什么?

您必须挂接pageinit事件。在此之前,不能调用任何JQM方法。 i、 e:


我也犯了同样的错误。我通过在我的查询中添加“:visible”来解决这个问题,因此它只有在列表可见时才会运行

因此,您的代码将如下所示:

$('#myListview:visible').listview('refresh');

对我来说很好

您应该检查它是否已初始化,如果已初始化,请刷新列表,否则将按照以下步骤触发创建:

if ( $('#myListview').hasClass('ui-listview')) {
    $('#myListview').listview('refresh');
     } 
else {
    $('#myListview').trigger('create');
     }

使用
$.mobile.changePage(#结果”)
而不是
location.href

实际上
location.href
重新加载页面,以便列表视图被销毁


然后是listview.refresh

只需先调用listview方法,不带任何参数:

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

解决方案取自

简单地添加listview.refresh对我来说很好,我也在使用ajax将内容加载到div中

document.getElementById("myListview").innerHTML = xmlhttp.responseText;
//works fine on my work
$('#myListview').listview('refresh');
这是我的帖子


我花了将近3个小时来解决我的帖子问题。终于在这里找到了答案。谢谢

这就是我的工作原理:

   $(document).delegate('#Results', 'pageshow', function (){
   $('#mylistview').listview('refresh').trigger('create'); 
   });

@user1656416#Results是jQuery移动页面id。此处的详细信息:。尝试此错误中的建议后,我的页面现在不会显示。它消除了错误,但是我绑定刷新的页面将不会显示。这是一个非常好的主意。谢谢你,阿什。哇!在我头撞墙一个小时后为我工作。对我来说也是如此:在JQM 1.4.5中,我试图在一个窗口中单击事件时创建一个动态弹出窗口。。。对于找到此线程的未来用户:我使用了以下代码
eventClick:function(calEvent,jsEvent,view){var$popup=$('testPopup').appendTo('[data role=“content”]');$('#eventPopup').popup().popup(“open”)}
@ethapil和intrixios我很高兴我救了你的头,使你免于遭受重大伤害。:-)哇……这个解决方案也解决了我的回流焊问题<代码>$(“.my table”).table().table(“刷新”)遇到了与此类似的问题,您可以回答帮助!谢谢
   $(document).delegate('#Results', 'pageshow', function (){
   $('#mylistview').listview('refresh').trigger('create'); 
   });