javascript - $ 在 onload 中不可用

标签 javascript jquery html onload

我无法理解在我的页面上使用 onload 时 $ 无法识别的错误。这就像我创建的示例页面一样,我需要在加载页面后调用函数。

Jquery Code

$(document).ready(function(){
 alert("loaded");
});

<html>

<head>
</head>

<body>

</body>
    <script src="../Jquery/contact.js"></script>
    <script src="../Jquery/jquery-1.12.0.min.js"></script>
    <script src="../Jquery/jquery-migrate-1.2.1.min.js"></script>
    <script src="../Jquery/jquery.SPServices-2014.01.min.js"></script>

    <link rel="stylesheet" type="text/css" href="../CSS/default.css"/>
    <link rel="stylesheet" type="text/css" href="../bootstrap-3.3.6-dist/css/bootstrap.css"/>
    <link rel="stylesheet" type="text/css" href="../bootstrap-3.3.6-dist/css/bootstrap.min.css"/>
    <link rel="stylesheet" type="text/css" href="../bootstrap-3.3.6-dist/css/bootstrap-theme.css"/>
    <link rel="stylesheet" type="text/css" href="../bootstrap-3.3.6-dist/css/bootstrap-theme.min.css"/>



</html>

最佳答案

这里有两个问题:

  1. 输入 script 无效。或link标记为 html 的直接子级,所以它至少在某些浏览器上无法正常工作并不令我感到惊讶。您需要将它们放在 body 中或headonly valid content of the html element是单head元素后跟一个 body元素。

    标准指南,例如 YUI Best Practices for Speeding Up your Website是:

    • 输入 link标签 head
    • 输入 script body底部的标签,就在收盘前 </body>标签
  2. 看起来像你的 contact.js文件调用$()立即(不是响应事件)。如果是这样,那么contact.js脚本列表中必须位于 jQuery 之后,以便在代码运行时加载 jQuery。

所以:

<html>

<head>
    <link rel="stylesheet" type="text/css" href="../CSS/default.css"/>
    <link rel="stylesheet" type="text/css" href="../bootstrap-3.3.6-dist/css/bootstrap.css"/>
    <link rel="stylesheet" type="text/css" href="../bootstrap-3.3.6-dist/css/bootstrap.min.css"/>
    <link rel="stylesheet" type="text/css" href="../bootstrap-3.3.6-dist/css/bootstrap-theme.css"/>
    <link rel="stylesheet" type="text/css" href="../bootstrap-3.3.6-dist/css/bootstrap-theme.min.css"/>
</head>

<body>

    <script src="../Jquery/jquery-1.12.0.min.js"></script>
    <script src="../Jquery/jquery-migrate-1.2.1.min.js"></script>
    <script src="../Jquery/jquery.SPServices-2014.01.min.js"></script>
    <script src="../Jquery/contact.js"></script>

</body>
</html>
<小时/>

旁注:

  • 您可以考虑组合和缩小脚本和 CSS,以避免产生大量 HTTP 请求。
  • 考虑添加 <!doctype html>位于最顶部,以确保浏览器处于标准模式(而不是怪异模式)。
  • 考虑添加 <meta charset="UTF-8">head 的顶部(确保文件确实采用 UTF-8 格式,或者将其中的“UTF-8”更改为您在文件中实际使用的任何编码)。

关于javascript - $ 在 onload 中不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37683127/

相关文章:

javascript - 您能否制作一个 html 链接,不允许您单击返回上一页,或显示历史记录中的上一个链接?

javascript - 从字符串中获取多个字节的更简单方法?

javascript - 用于信用卡检测的 RegEx 和 Keyup

javascript - 如何将文件类型从 Coldfusion 代码传输到 javascript 代码?

javascript - Soundcloud SDK 3. 最喜欢的(喜欢的)歌曲的不间断流

jquery - Angular : ng:include for current template and scope?

javascript - 通过将文本替换为类来换行/打断列表元素

jquery - kendo.syncReady 不是函数

javascript - 需要 css 帮助,Autosuggest jquery by Drew Wilson

php - 用PHP知道浏览器是否可以播放带有html5音频标签的音频文件