这是我的XHTML页面的代码。 jQuery位于我的应用程序的/js/
文件夹中。所有其他页面的验证都是使用相同的文件使用jQuery完成的,但是我无法在我创建的这个测试页面上运行简单的jQuery代码。这是页面的代码:
<?xml version='1.0' encoding='UTF-8' ?>
<!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"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<script type="text/javascript" src="js/jquery.js"></script>
<script>
$(document).ready(function () {
$("p").text("The DOM is now loaded and can be manipulated.");
});
</script>
<br/><br/><br/>
<p>Not loaded yet.</p>
<input id="pedram" type="text" onclick="alert('hi');"/>
</h:body>
</html>
我还尝试使用CDATA
标记。我还将脚本移到了文档的头部。
唯一可行的是alert()
我放在onclick
事件中。没有别的办法。
请告诉我我做错了什么。
答案 0 :(得分:8)
变化
<script src="js/jquery.js">
$(document).ready(function () {
$("p").text("The DOM is now loaded and can be manipulated.");
});
</script>
要
<script>
$(document).ready(function () {
$("p").text("The DOM is now loaded and can be manipulated.");
});
</script>
您不需要指定两次jQuery源代码..当您在代码中使用js时也不需要
答案 1 :(得分:0)
我必须使用我的应用程序(java)的上下文路径并添加到我的jquery库地址。
<script type="text/javascript" src="#{facesContext.externalContext.requestContextPath}/js/jquery.js"></script>
答案 2 :(得分:0)
问题似乎是你将<h:body>
与jQuery 1.x结合使用。
使用jQuery 2.x或<body>
将解决您的问题。
jQuery 1.x可能在某个地方使用document.body
,因为document.body
在使用<h:body>
时为空,因此失败。
如果您不介意我的问题,为什么要使用h命名空间(http://java.sun.com/jsf/html)?