您的脚本永远不会加载。它们在加载过程中被剥离。
(以上是来自http://jqueryui.com/datepicker/的copy-pasta )
我将假设您的意思是您正在复制该样本的全部源代码,大致如下所示:
<!doctype html>
<html lang="en">
<head>
<!-- Snipped for brevity: A bunch of script and link elements-->
</head>
<body>
<p>Date: <input type="text" id="datepicker" /></p>
</body>
</html>
因此,您使用jQuery 的加载函数获取此文档并将其放置在 div 中:
$("#div").load("page.php");
此处加载不合作
根据.load() 上的文档:
jQuery 使用浏览器的.innerHTML
属性来解析检索到的文档并将其插入到当前文档中。在此过程中,浏览器通常会从文档中过滤元素,例如<html>
、<title>
或<head>
元素。因此,由 检索到的元素.load()
可能与浏览器直接检索到的文档并不完全相同。
以我自己的经验,这通常意味着.load()
只会从 body 元素内部返回内容,而不是 body 元素本身。换句话说,从上面的示例中,这是实际加载的唯一 HTML:
<p>Date: <input type="text" id="datepicker" /></p>
您应该使用浏览器的开发人员工具 (F12) 在脚本中放置断点并找出实际加载的内容。
你如何正确地做到这一点?
它有两个部分。
第 1 部分:将资源移出<head>
元素
Datepicker 代码示例在<head>
. 你将不得不把这些放在别处。
<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" />
链接元素
您正在加载的页面无法加载这些内容。将它们放在<head>
您尝试将另一个加载到的父页面的元素中。
脚本元素
这些也会在您加载文档时加载,只要:
但是,它只是 jQuery 和 jQuery UI,您知道您将要使用它们。您也可以将它们移动到父页面的<head>
元素中。
2. 将您要加载的重要部分放入主体中。
就是这些位:
<script>
$(function() {
$( "#datepicker" ).datepicker();
});
</script>
<p>Date: <input type="text" id="datepicker" /></p>
将它们放在<body>
您要加载的文档的元素中。然后,如果您遵循有关脚本的建议,它将成功加载。
可选地,在 : 中包含 jQuery 引用<body>
:
<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>
<script>
$(function() {
$( "#datepicker" ).datepicker();
});
</script>
<p>Date: <input type="text" id="datepicker" /></p>