我刚刚开始在Mac上玩游戏,我创建了一个非常简单的HTML页面,当点击h1标签时,该页面使用jQuery进行简单的文本交换。
当我不通过网络服务器查看页面并直接在Safari中打开它(文件:///Applications/xampp/xamppfiles/htdocs/test/mypage.html)时,它按预期工作。但是,当我尝试通过Apache(http://localhost/test/mypage.html)查看时,它不起作用。
以下是代码:
<html>
<head>
<title>My Awesome Page</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" charset="utf-8">
function sayHello()
{ $('#foo').text('Hi there!');
}
</script>
</head>
<body>
<h1 id="foo" onclick="sayHello()">Click me!</h1>
</body>
</html>
我在Mac上遗漏了什么吗?自客户端代码以来不会是Apache设置..对吗?
我可能还应该提到我加载XAMPP来运行Apache和MySQL。我测试了Apache以确保它使用简单的PHP文件。
史蒂夫
答案 0 :(得分:3)
使用Firebug并访问该页面。可能是罪魁祸首的一件事是,由于文件权限,Web服务器无法打开jquery.js文件。 Firebug将显示页面中是否加载了jquery,即使您可以在Console选项卡中即时添加jQuery代码。
如果您使用Safari访问它,请使用Web Inspector并查看控制台选项卡中是否显示任何错误。
最后一件事,养成避免onclick
的习惯,改为:
<script type="text/javascript" charset="utf-8">
function sayHello()
{
$('#foo').text('Hi there!');
}
//wait DOM loaded
jQuery(function($){
$('#foo').click(function(){
sayHello();
});
});
</script>
此外,最好将js代码放在页面末尾,</body>
之前,这样就不会阻止并发页面元素的加载。