我已经基于数据库创建了动态列表视图,但问题是加载列表视图,我必须再次刷新页面。
例如 ,
页面 A.html 有一个按钮,页面 B.html 有一个列表视图
当我点击页面 A.html 内的按钮时,页面 B.html 加载,但列表视图
不可见,当我再次刷新 B.html 时,列表视图将加载。
A页面的代码即index.html当点击 findme 页面 B 时加载
<div data-role="content">
<p>
<a href="findme.html" id="findMeBtn" data-role="button" data-icon="delete">Find Me</a>
<a href="index.html" data-role="button" data-icon="delete">Fingle Hunts Basic</a>
<a href="index.html" data-role="button" data-icon="delete">Communicator</a>
</p>
<p>
<div id="action">
<div id="loading-icon"></div>
<div id="msg"></div>
</div>
</p>
</div><!-- /content -->
B页代码即findme.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Find Me</title>
<link rel="stylesheet" type="text/css" href="style/jquery.mobile.css"/>
<link rel="stylesheet" type="text/css" href="style/main.css"/>
</head>
<body>
<div data-role="page" id="findme">
<div data-role="header" data-theme="b">
<a href="index.html" data-icon="back">Back</a>
<h1>VisitFingal</h1>
</div><!-- /header -->
<div data-role="content" >
<center>
<div class="vf-nav-view vf-button-panel" >
<div data-role="controlgroup" data-type="horizontal" data-fullscreen="true" >
<a href="index.html" data-role="button" style="width:30%;" data-theme="b">List</a>
<a href="index.html" data-role="button" style="width:30%;" data-theme="b">Map</a>
</div>
</div>
</center>
<div id="findMeListView">
</div>
</div><!-- End of FindMe Page -->
<div data-role="page" id="details">
<div data-role="header"><h1>Details</h1></div>
<div data-role="content"></div>
</div>
<div data-role="footer" data-theme="b" data-id="mainfoot" data-position="fixed">
<div data-role="navbar">
<ul>
<li><a href="index.html" >Home</a></li>
<li><a href="findme.html" class="ui-btn-active ui-state-persist">Find Me</a></li>
<li><a href="#">Communicatior</a></li>
<li><a href="#">Like</a></li>
<li><a href="#">Favourates</a></li>
</ul>
</div>
</div><!-- /footer -->
</div>
</body>
<script src="js/jquery-1.6.3.min.js" type="application/javascript"></script>
<script src="js/jquery.mobile.js" type="application/javascript"></script>
<script type="application/javascript">
$(document).bind( "pagebeforechange", function( e, data ) {
$.getJSON('getData.php', function(data) {
var items = [];
$page = $("#findme");
$content = $page.find("#findMeListView" );
var listViewData='<ul data-role="listview" data-filter="true" data-inset="true" data-theme="c" >';
for (var i=0; i <data.length;i++)
{
listViewData += '<li><a href="details.html?id='+data[i].id+'"><img height="95" width="95" src="'+data[i].url+'" /><h3>'+data[i].name+'</h3></li>';
}
listViewData+='</ul>';
$content.html(listViewData);
$content.find( ":jqmData(role=listview)" ).listview();
});
});
</script>
</html>
当您使用这样的多页面模板时,当您从页面 A 单击到页面 B 时,JS 将被忽略。这是因为 jQuery Mobile AJAX 链接仅拉取第一个data-role="page
新页面中的元素并将其附加到当前 DOM,正如您可以想象的那样,这会忽略 之外的任何代码data-role="page
元素。
两个修复:
将 JavaScript 代码放入page B
直接在data-role="page
元素,以便当 jQuery Mobile 对页面进行 AJAX 加载时将对其进行解析。
将站点的所有代码放入一个 JS 包含文件中,并将其包含在<head>
每一页;这样,无论用户刷新还是深层链接到站点,以及使用 jQuery Mobile 的 AJAX 链接进行导航,站点的所有代码都将可用。这是我的首选方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)