首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery mobile无法刷新折叠集

jQuery mobile无法刷新折叠集
EN

Stack Overflow用户
提问于 2013-06-29 17:42:48
回答 4查看 4.9K关注 0票数 4

我正在使用wordpress mobile创建一个应用程序,并从wordpress throw jQuery加载它的菜单和页面。我正在加载它的菜单,形式是折叠集和列表视图,但我一直收到错误。当我尝试通过下面的代码刷新折叠集时

代码语言:javascript
复制
$(".childnev").html(list);
$.mobile.loading( 'hide');
$('.popupmenu').slideToggle('slow');

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

$(".childsublist").listview().listview('refresh');

它给出了这个错误

代码语言:javascript
复制
Error: cannot call methods on collapsibleset prior to initialization;
attempted to call method 'refresh'

当我尝试用这段代码刷新时。

代码语言:javascript
复制
$(".childnev").html(list);
$.mobile.loading( 'hide');
$('.popupmenu').slideToggle('slow');

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

$(".childsublist").listview().listview('refresh');

它再一次给我这个错误

代码语言:javascript
复制
TypeError: o[0] is undefined

我是不是遗漏了什么或者做错了什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-29 18:47:29

您所需要做的就是添加以下内容

代码语言:javascript
复制
$('[data-role=collapsible-set]').collapsibleset().trigger('create');

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

备注

  • 基于你comment中的小提琴,你有很多错误。移动电话不应该与jQuery .ready一起使用。此外,不再使用.live,因此,用.on.
  • Enhancement方法替换.live方法refreshcreatepagecreateupdatelayout将用于当前页面(active page - $.mobile.activePage),以重新应用jQuery移动样式。对于动态创建的DOM页面,不需要使用任何增强方法-甚至不需要.page()pagecreate -因为页面及其内容一旦放入DOM就会得到增强。
票数 6
EN

Stack Overflow用户

发布于 2013-06-29 17:50:33

因为你是动态地将可折叠的se附加到这个类,所以它不能被刷新,因为它不是被创建的。您需要创建它。

你必须使用

代码语言:javascript
复制
$(".childnev").html(list).trigger('create');
票数 1
EN

Stack Overflow用户

发布于 2013-06-29 17:50:56

可折叠集未初始化。您要替换html,因此需要在元素上触发create

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

使用

代码语言:javascript
复制
$(".childnev").trigger('create');

只有在动态附加、删除元素时,才会使用刷新方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17378836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档