我刚刚开始第一次在 Mac 上玩,我创建了一个非常简单的 HTML 页面,当单击 h1 标记时,它使用 jQuery 进行简单的文本交换。
当我不通过网络服务器查看页面而是直接在 Safari 中打开它时 (file:///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。我已经使用一个简单的 PHP 文件测试了 Apache 以确保其正常工作。
史蒂夫
最佳答案
使用 Firebug 并访问页面。可能是罪魁祸首的一件事是 Web 服务器由于文件权限而无法打开 jquery.js 文件。 Firebug 将显示页面中是否加载了 jQuery,即使您可以在“控制台”选项卡中即时添加 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>
之前,因此它不会阻止并发页面元素的加载。
关于javascript - 在本地主机上查看页面时 jQuery 脚本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2166689/