我一直在尝试使用许多“标准”JavaScript DOM函数来访问HTML文档中的元素(getElementById
,getElementsByName
等),但我无法使用jQuery移动 - 加载子页面时,从getElementById("elementOfInterest").innerHTML
返回的值仍包含母版页中的值。
我正在尝试在iPhone应用程序中实现这一点,在导航栏中提取并显示相应的子页面标题(页面显示在UIWebView中),但我认为(并希望)问题和解决方案或多或少“平台独立”。
任何想过如何使用JavaScript(或可能是一些jQuery函数)实现这一目标的人?但是我在jQuery Mobile Docs中找不到任何东西。
答案 0 :(得分:2)
根据jQuery Mobile configuration的默认行为,它会在可能的情况下自动处理链接点击并通过Ajax表单提交。因此,当您打开新页面(子页面)时,新页面将附加到母版页的DOM。在此期间,您将松开写在新页面上的JavaScript。
根据我的想法,您可以禁用Ajax表单和链接。
为此,请编写如下链接:
<a href="createForm.htm" data-role="button" data-ajax="false">Create</a>
您也可以通过覆盖默认配置来为所有链接执行此操作:
<script src="/js/jquerymobile/jquery-1.5.min.js"></script>
<script type="text/javascript">
$(document).bind("mobileinit", function(){
$.mobile.ajaxEnabled= false;
});
</script>
<link rel="stylesheet" href="/css/jquerymobile/jquery.mobile-1.0a3.min.css" />
<script src="/js/jquerymobile/jquery.mobile-1.0a3.min.js"></script>
在这两种方式中,痛苦的是,你将松开框架生成的后退按钮!
了解详情: http://jquerymobile.com/demos/1.0a3/#page.html&subpageidentifier
修改强>
要在新页面中添加后退按钮,您可以手动将其设置为:
<div data-role="header">
<a href="../list.htm" data-icon="arrow-l" data-ajax="false">Back</a>
<h1>
List items
</h1>
</div>