在最新的jQuery Mobile版本中,添加后退按钮的方式是将“data-add-back-btn =”true“添加到整个”页面“div中。
这很好。但是,当查看嵌套列表子菜单时,后退按钮不再存在。
通过查看输出代码,似乎发生了什么事情,jquery mobile会隐藏您的原始“page”div,并创建一个新的(没有将back button属性设置为true)。
目前我没有演示网址,但您可以在演示页面http://jquerymobile.com/test/docs/lists/lists-nested.html上看到问题
我的问题是,有没有什么我需要添加,这将告诉它为嵌套菜单添加一个后退按钮?如果没有,是否有某种方式可以将其删除,以自动将后退属性添加到所有“页面”div中?
感谢任何关于这个问题的帮助。
解决方法
这样的事情应该有助于:
$(':jqmData(url^=MYPAGEID)').live('pagebeforecreate',function(event) { $(this).filter(':jqmData(url*=ui-page)').find(':jqmData(role=header)') .prepend('<a href="#" data-rel="back" data-icon="back">Back</a>') });
将MYPAGEID替换为包含列表的页面的ID。
当子页面动态创建时,将触发事件,并将后退按钮作为头文件中的第一个项目插入。然后,当jQueryMobile魔术自动运行后,这将被拾起并且变得很好。
过滤有点奇怪,因为您无法在第一个选择器中引用ui页面(它在数据url中绊倒,并且看起来您不能在.live()之前使用过滤器)没有这个额外的过滤也可以在父页面上获得后退按钮。