我正在使用基于多页 html 文件的 Jquery/mobile 开发 Phonegap 应用程序,使用固定标题作为标题,使用固定页脚作为带有按钮的工具栏。这个想法是,通过单击页脚上的前进/后退按钮,用户移动几个步骤,刷新每个页面中的数据块,因此他们可以在该特定步骤的不同“块”之间来回滑动。
在解决了大部分松散的问题后,我一直在整理我的代码,将用于处理按钮的 JQuery 提取到单独的函数中,然后我在每个子页面显示时调用 AIUI。问题是,既然我已经这样做了,我的前进/后退按钮似乎只在第一页上工作。有什么想法我可能会出错吗?
相关html:
<body onload="onBodyLoad()">
<div data-role="page" id="page1" class="page">
<script type="text/javascript">
$(document).ready(function () {
InitRightBar();
InitLeftBar();
ReloadText();
InitBackButton();
InitForwardButton();
});
</script>
<div data-role="header" data-id="fixedheader" data-position="fixed" >
<h1>Fixed header</h1>
</div><!-- /header -->
<div data-role="content">
<div id="contentview">
<a href="#page2" data-transition="flip">Linky</a>
</div>
<div id="rightbar">
<img src="images/Testbar.png">
</div>
</div><!-- /content -->
<div data-role="footer" data-id="fixedfooter" data-position="fixed">
<a id = "BackButton" href="#">Back</a>
<a id="ForwardButton" href="#">Forward</a>
</div><!-- /footer -->
</div><!-- /page1 -->
<div data-role="page" id="page2" class="page">
<script type="text/javascript">
$(document).ready(function () {
InitRightBar();
InitLeftBar();
ReloadText();
InitBackButton();
InitForwardButton();
});
</script>
<div data-role="header" data-id="fixedheader" data-position="fixed" >
<h1>Fixed header</h1>
</div><!-- /header -->
<div data-role="content">
<div id="leftbar">
<img src="images/Testbar.png">
</div>
<div id="mainview">
<blockquote id="blocktext">
<p>Hello world</p>
<p><a href="#page1" data-transition="flip">Linky</a></p>
</blockquote>
</div>
</div><!-- /content -->
<div data-role="footer" data-id="fixedfooter" data-position="fixed">
<a id = "BackButton" href="#">Back</a>
<a id = "ForwardButton" href="#">Forward</a>
</div><!-- /footer -->
</div><!-- /page2 -->
</body>
如果有帮助,我可以提供各个功能,但据我所知,使用警报,问题可能出在此处 - 第二页的按钮根本没有变得活跃/可点击......
无论如何,提前谢谢!贾尔斯
*更新回应克里斯的评论:
感谢您的建议 - 我已尝试禁用第 2 页的脚本,但没有任何区别,但我不确定这是因为它们实际上是多余的,还是因为我遇到的整体问题(我认为我需要初始化按钮,因为该页面只有在用户滑动或链接到它时才会加载到 DOM?)
我真的看不出任何东西来澄清第二页上固定页眉/页脚的元素是否实际上是从第一页保留的,或者只是在原地复制,所以我假设我必须单独编码它们他们是“新”元素,并试图相应地初始化它们......这是错的吗?
按键功能代码如下:
function InitBackButton (){
$("#BackButton").click(function(event){
alert("triggered!")
event.stopImmediatePropagation()
if (counter >0)
{counter -=1;
$("#blocktext").html(pagecontent[counter][0]);
}
});
}
function InitForwardButton(){
$("#ForwardButton").click(function(event){
event.stopImmediatePropagation()
if (counter < 3)
{counter +=1;
$("#blocktext").html(pagecontent[counter][0]);
}
});
}