当在localhost上查看页面时,jQuery脚本无法正常工作

时间:2010-01-30 03:18:31

标签: javascript jquery html apache macos

我刚刚开始在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文件。

史蒂夫

1 个答案:

答案 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>之前,这样就不会阻止并发页面元素的加载。