jQuery mobile无法刷新collapsibleset

Abh*_*ang 4 jquery jquery-mobile jquery-mobile-listview jquery-mobile-collapsible

我正在使用jQuery mobile创建一个应用程序并加载其菜单和页面形式wordpress throw jsonp.我正在以collapsibleset和listview的形式取消其菜单,但我一直在收到错误.当我尝试通过此代码刷新collapsibleset时

$(".childnev").html(list);
$.mobile.loading( 'hide');
$('.popupmenu').slideToggle('slow');

$(".childnev").collapsibleset('refresh');

$(".childsublist").listview().listview('refresh');
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误

Error: cannot call methods on collapsibleset prior to initialization;
attempted to call method 'refresh'
Run Code Online (Sandbox Code Playgroud)

当我尝试刷新此代码时.

$(".childnev").html(list);
$.mobile.loading( 'hide');
$('.popupmenu').slideToggle('slow');

$(".childnev").collapsibleset();
$(".childnev").collapsibleset('refresh');

$(".childsublist").listview().listview('refresh');
Run Code Online (Sandbox Code Playgroud)

它再次给了我这个错误

TypeError: o[0] is undefined
Run Code Online (Sandbox Code Playgroud)

我错过了什么或做错了什么?

Oma*_*mar 6

你需要做的就是添加这个

演示

$('[data-role=collapsible-set]').collapsibleset().trigger('create');
Run Code Online (Sandbox Code Playgroud)

这将提高的标记[data-role=listview][data-role=collapsible-set]当前页面(活动页面).您可以替换$('[data-role=collapsible-set]')任何选择器.


笔记)

  • 基于评论中的小提琴,你有很多错误..ready不应该与jQuery Mobile一起使用.此外,.live不再使用,因此,更换.live.on.

  • 增强的方法refresh,create,pagecreateupdatelayout旨在用于当前页面(活动页面- $.mobile.activePage)重新申请jQuery Mobile的风格.对于网页动态创建和在DOM,也没有必要使用任何增强方法-即使.page()或者pagecreate-因为网页及其内容获得增强,一旦放入DOM.