我正在JQuery / JQuery Mobile中构建一个站点。我正在逐个测试页面。我创建了一个页面,要求用户输入并使用数据库(PHP / MySQL)中的记录进行自动完成。它就像我想要的那样工作。
但是,当我进入我的索引页面然后按照指向新页面的链接时,它就不再起作用了。有人告诉我一些关于JQuery Mobile查看所有页面的信息,好像它们是一个大页面,因此以后不会加载其他脚本。
这听起来很熟悉吗?在哪里可以找到更多相关文档?我该怎么解决这个问题?创建一个大的JavaScript文件,并让所有页面调用主文件中的函数?
自动填充页面:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Autocomplete - Multiple, remote</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<style>
.ui-autocomplete-loading {
background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat;
}
</style>
<script>
$(function()
{
$("#brands")
.autocomplete
({
source: 'getbrands.php',
minLength:2,
});
$("#collection")
.autocomplete
({
source: 'getcollection.php',
minLength:2,
});
});
</script>
</head>
<body>
<form action="search.php" method="post">
Enter your Brand:
<input type="text" id="brands" />
<br />
Enter your Collection:
<input type="text" id="collection" />
<br />
<input type="submit" value="Search" />
索引页:
<?php
include_once('inc/checkloginfirst.inc.php');
?>
<!DOCTYPE html>
<html>
<head>
<title>Web</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/jquery.mobile-1.2.1.min.css" />
<script src="script/jquery-1.8.3.min.js"></script>
<script src="script/jquery.mobile-1.2.1.min.js"></script>
<script src="script/validate.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h1>Beta</h1>
</div><!-- /header -->
<div data-role="content">
<ul data-role="listview" data-inset="true" data-theme="a">
<li><a href="m-search.php"><center>Quick Search </center></a></li>
<li><a href="m-browse.php"><center>Browse </center></a></li>
<li><a href="brandsearch-test.html"><center>Add new </center></a></li>
<li><a href="#"><center>User Settings</center></a></li>
</ul>
</div><!-- /content -->
<div data-role="footer" class="ui-bar" data-position="fixed">
<a href="m-index.php" data-role="button" data-icon="home">Home</a>
<a href="m-logout.php" data-role="button" data-icon="delete" style="float: right;">Logout</a>
</div>
</div><!-- /page -->
</body>
</html>
Gabrie
答案 0 :(得分:0)
这确实是正确的。要使脚本能够正常工作,您必须将它们包含在通过AJAX引入的页面的<body>
内。 AJAX加载完全忽略了<head>
。
如果要初始化该脚本中的函数,请确保绑定到该页面的body标签的onload
方法或绑定到pageinit
,例如。
...
<body onload="initializePreviousReports()">
<div data-role="page" id="options" data-theme="a">
<script type="text/javascript">
$(document).bind('pageinit', initializePreviousReports());
function initializePreviousReports() {
// Some logic here.
}
</script>
<div data-role="header" data-position="fixed" data-tap-toggle="false">
<h1>Previous Reports</h1>
</div>
<!-- /header -->
<div id="previousReportContainer" data-role="content">Put some content in here.</div>
</div>
</body>
...
希望有所帮助。 R上。