【发布时间】:2012-07-30 18:25:58
【问题描述】:
编辑:澄清一下,我确实希望 #capture-photo 按钮激活,但我想在以编程方式导航到另一个页面时重置它。
我目前正在使用 jQuery 作为框架构建一个 Phonegap/Cordova 应用程序。大多数情况都很好 - 除了一种情况。
我有一个带有导航栏和三个按钮的固定页脚(效果很好)。
两个按钮可以转到没有 ajax 的常规页面,而且效果很好。
一个按钮连接到相机界面并触发(即)iPhone 上的相机。如果我取消,我会返回屏幕,但相机按钮现在具有活动状态和样式。
我在失败时触发了一个changePage,并且页面被激活,但它并没有改变按钮状态!?我试图手动删除类但没有成功!?似乎有些东西会延迟为活动状态添加类,直到或其他东西。
我做错了吗? changePage() 不应该找到并触发它的锚点吗?
在专辑页面中,页脚如下所示:
<div class="footer" data-role="footer" data-position="fixed" data-id="footer-tab">
<div data-role="navbar" class="nav-glyphish">
<ul>
<li><a id="welcome" href="#welcome"></a></li>
<li><a id="capture-photo"></a></li>
<li><a id="show-album" href="#album" class="ui-btn-active ui-state-persist"></a></li>
</ul>
</div>
</div>
再说一遍 - #capture-photo 按钮没有相应的页面,但是当我单击它时,如果我取消相机,它就会被激活 - jqm 捕获一个 changePage 并转到 #show-album,但 #capture - 照片按钮仍被标记为活动。
P.S 我确实在两个页面上都有相同的页脚 (data-role='footer'),只是它们各自的锚点设置了 ui-btn-active 和 ui-state-persist。我对这个重复的代码感到有点不舒服,但它似乎是解决持久页眉/页脚的唯一方法?
【问题讨论】:
-
你的意思是喜欢做 e.preventDefault();点击?
-
不是真的:(我在编辑中澄清了一点。
-
现在我尝试像这样手动触发它:
$('#album #show-album').trigger('vclick')在运行$.mobile.changePage('#album')之后它实际上可以工作,但是当我导航到#welcome 页面时它会再次被激活(!?!?) -所以现在 #welcome-page 和 #capture-photo 都处于活动状态(!?!?)。