我正在尝试将 Handlebars 与 jQuery mobile 结合使用。我正在使用 jQuery 1.9.1、jQueryMobile 1.4、Handlebars 1.1.2。
<div data-role="page" id="attach-template">
<div data-role="panel" id="mypanel">
<div data-role="header">
<h1>Title</h1>
</div><!-- /header -->
<nav>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="promotions.html">Promotions</a></li>
<li><a href="events.html">Events</a></li>
</ul>
</nav>
</div>
<script id="content-template" type="text/x-handlebars-template">
<div data-role="header">
<a href="#mypanel" data-icon="gear">M</a>
<h1>{{title}}</h1>
</div>
<div data-role="content" id="listview-content">
HELLO!
</div><!-- /content -->
<div data-role="footer">
<h4>Page Footer</h4>
</div>
</script>
</div><!-- /page -->
问题是,当我加载页面、拉入数据、编译模板并将它们附加到 data-role="page"时,它显示正常,但是当我单击打开面板按钮时,数据-role=“内容”消失。查看 chrome 开发工具,看起来 jQM 没有像页眉和页脚那样移动或附加此 div。
有什么建议为什么只有这个div而不是所有div都这样做吗?
我也尝试在handlebars.append之后调用以下内容,但没有执行任何操作:
$("#listview-content").trigger('create');
$('#mypanel').trigger('updatelayout');
$('body').trigger('create');
$('body').trigger('pagecreate');
最佳答案
使用内部或外部面板时,将内容 div 包装在带有 ui-panel-wrapper 类的 div 中,以避免重新加载内容 div第一次打开面板时。
<div class="ui-panel-wrapper">
<div class="ui-content">
</div>
</div>
关于jQuery Mobile/Handlebars - 打开面板隐藏 data-role=content div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20814211/