Jquery移动列表视图 – 检查初始化完成

我把自己的方式写进了一个角落。

我需要在listview("refresh")上调用listview("refresh") ,但是在我调用refresh方法时可能没有初始化它。

有没有办法检查组件是否已初始化?

这是我得到的错误:

在初始化之前无法调用listview上的方法

listview小部件被初始化时,它被赋予了ui-listview类,所以我们可以测试这个类是否已经初始化:

 //select the listview var $myUL = $('#my-ul-element'); //add a list-item to the listview $myUL.append('
  • I\'m New!
  • '); //check if the listview has the ui-listview class if ($myUL.hasClass('ui-listview')) { //this listview has already been initialized, so refresh it $myUL.listview('refresh'); } else { //this listview has not yet been initialized, so it gets initialized $myUL.listview();//or you can use .trigger('create'); }

    这应该有助于缓解您获得的错误。

    此外,如果元素具有[class] ,则.hasClass('[class]')函数返回true / false : http : //api.jquery.com/hasClass

    尝试

     $list.listview(); $list.listview('refresh'); 

    对我来说,这条消息的解决方案是将data-role="listview"到我的ul元素中。 然后我可以在我的事件处理程序中使用方法.listview('refresh')

    你可以简单地创建一个全局变量

    var is_mobile_init = false;

    在脚本的顶部。 然后在包含jquery mobile之后将其设置为true。

    然后在刷新之前,

     if (is_mobile_init) $myUL.listview('refresh'); 

    这样,您不需要跟踪所有各种类,它是直观的