2

当用户更改设置时,我想更改主页上的导航栏。我有:

<section id="main" data-role="page">
<nav data-role="navbar">
   <ul></ul>
</nav>
</section>

我用 JavaScript 填充无序列表,但它失去了它的 css 样式。

问:当用户从“设置”页面返回并再次看到主页时,我使用什么事件来确保导航栏的样式正确?

Q:用户按下“返回主页面”按钮后,应该触发什么事件来刷新主页面?

编辑:

实际上,该列表也填充在 pageinit 上。

4

1 回答 1

2

Q1。

如果您在 pagebeforecreate、pagecreate 或 pageinit 期间填充导航栏,则不需要对其进行样式设置。如果您在以后的活动中这样做,那么请这样做:

$('#pageID').trigger('pagecreate');

这将触发整页重新设置样式,包括页脚和页眉。如果您只需要重新设置页面内容的样式,请使用以下命令:

$('#pageID').trigger('create');

在我的另一篇文章中了解更多信息:https ://stackoverflow.com/a/14550417/1848600

Q2。

在这种情况下,您可以防止主页兑现,就是这样。

官方文档:http: //jquerymobile.com/demos/1.2.0/docs/pages/page-cache.html

要防止页面兑现,请使用属性data-dom-cache="false"

<div data-role="page" id="dontCacheMe" data-dom-cache="false">

但不幸的是,如果主页是要显示的第一页,或者至少是第一个 HTML 的一部分,则无法防止兑现。

在这种情况下,清除每个具有生成内容的元素并再次触发 pagecreate。

编辑 :

我忘了提。导航栏元素的动态添加是错误的,它没有按预期工作。前段时间我创建了一个如何动态添加导航栏元素的示例,您可以在这里找到它:http: //jsfiddle.net/Gajotres/V6nHp/

这个和更多可以在我的其他文章中找到,或者可以在这里找到。

于 2013-04-02T14:25:44.780 回答