JavaScript代码放在哪里?

浏览器在渲染HTML页面时,是从头到尾,一行一行地检查执行的。如果JavaScript代码在前面,HTML元素在后面,遇到JavaScript选择一个还未渲染的HTML元素将会选择失败。因此,通常的做法是将脚本放在页面最后(紧跟在</body>标签之前)。

ready()事件

如果将JavaScript代码分和HTML离出来,脚本又在<head></head>之间引入,会不会出问题?

要避免上述问题,可以使用ready()事件。

jQuery的ready()事件通常在DOMContentLoaded事件加载后执行。因此可以保证JavaScript代码被执行。

ready()事件写法:

1
2
3
$(document).ready(function(){
   // 要被执行的JavaScript代码
});

这样写,可以保证要被执行的JavaScript被执行,不管这些要被执行的JavaScript代码放在页面的哪个地方。

示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>ready()使外置JS代码正常运行</title>
  6. <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.3.1.min.js"></script>
  7. <script src="dh.js"></script>
  8. <style>
  9. li{
  10. max-width: 200px;
  11. background-color: #6cc0ac;
  12. color: #fff;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <div>
  18. <ul id="ul">
  19. <li id="a">鼠标</li>
  20. <li id="b">键盘</li>
  21. <li id="c">屏幕</li>
  22. <li id="d"><a>主机</a></li>
  23. </ul>
  24. </div>
  25. <script>
  26. $(document).ready(function () {
  27. // 要被执行的JavaScript代码
  28. dh();
  29. });
  30. </script>
  31. </body>
  32. </html>

  

ready()事件简写

jQuery还提供了ready()事件的简写方式:

1
2
3
$(function () {
    // 要被执行的JavaScript代码
});

ready()事件;使外置JS代码正常运行的更多相关文章

  1. 如何快速找出网页中事件对应的js代码片段

    后端人员也免不了要处理一些前端的事情,由于代码不是自己写的,所以不好找到相关的代码. 比如在表单提交时,前端提交的数据不正确,这时候你可能会想在谷歌浏览器里添加一个鼠标 点击事件的断点. 然而查看js ...

  2. 如何查找元素对应事件的js代码,检测定位js事件

    比如一张图片当鼠标放到上面时,图片改变.想找到这个事件对应的js代码,假设另存为html之后,文件夹中有.js文件. 如果你会调试,可以用打开浏览器的调试功能,以chrome为例,按F12打开调试窗口 ...

  3. 网页调试js时,如何知道某个事件对应哪段js代码?

    有时候我们需要知道某个事件对应的js代码,比如点击一个div元素时,出现下拉框,我想知道这个功能对应的js代码,那就可以按下图操作: 勾选click事件,重新运行,那么就会在每个click事件那里设置 ...

  4. js便签笔记(6)——jQuery中的ready()事件为何需要那么多代码?

    前言: ready()事件的应用,是大家再熟悉不过的了,学jQuery的第一步,最最常见的代码: jQuery(document).ready(function () { }); jQuery(fun ...

  5. js 如何判断鼠标点击事件还是js代码调用

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  6. JQuery - 动态添加Html后,如何使CSS生效,JS代码可用?

    今天在开发JQuery Mobile程序时候,需要从服务器取得数据,随后显示在页面上的Listview控件中,数据完整获取到了,也动态添加到Listview控件中,但是数据对应的CSS没有任何效果了, ...

  7. js封装的三级联动菜单(使用时只需要一行js代码)

    前言 在实际的项目开发中,我们经常需要三级联动,比如省市区的选择,商品的三级分类的选择等等. 而网上却找不到一个代码完整.功能强大.使用简单的三级联动菜单,大都只是简单的讲了一下实现思路. 下面就给大 ...

  8. JS代码的位置与事件响应代码块的封装问题

    JS代码的位置       我们可以将JavaScript代码放在html文件中任何位置,但是我们一般放在网页的head或者body部分.   放在<head>部分最常用的方式是在页面中h ...

  9. onload事件与ready事件的区别,原生js与jquery的区别

    onload事件与ready事件分别是原生js与jquery的入口函数 原生js入口函数写法: window.onload=function(){ } jquery入口函数写法: $(document ...

随机推荐

  1. openstack Q版部署-----界面horizon安装(9)

    一.界面的安装 控制节点安装软件包: yum install openstack-dashboard -y [root@linux-node1 ~]# vim /etc/openstack-dashb ...

  2. linux查看日志

    若想在linux下查询某个时间段的log,用sed命令示例如下: $ sed -n '/2017-11-11 11:00:00/,/2017-11-11 11:11:11/p'  error.log ...

  3. OGG选择捕捉和应用模式

    本章包含的信息可帮助您确定适用于数据库环境的捕获和应用模式. 主题: Oracle GoldenGate捕获和应用进程概述 决定使用哪种捕捉方法 决定使用哪种应用方法 同时使用不同的捕捉和应用模式 切 ...

  4. cosmic_download-AsyncPool待修正

    # !/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/16 10:02 AM # @Author : cxa # @File ...

  5. a.py

    #!/usr/bin/python # -*- coding: UTF-8 -*- import os import sys import re import shutil import glob d ...

  6. 【SCOI2010】序列操作

    各种繁琐的线段树标记操作...赤裸裸的码农题. 调了一个晚上,最后写篇题解. 题解亮点:代码短,~~跑得慢(连第一页都没挤进去)~~ 其实我跟你们说啊,代码短是好事~~(这里不是说压行好,我的代码不压 ...

  7. linux 查看nginx如何启动

    执行命令: ps -A | grep nginx如果返回结果的话,说明有nginx在运行,服务已经启动

  8. Sql语句之并(UNION)、交(INTERSECT)、差(minus)、除去(EXCEPT)

    UNION 查询选修了180101号或180102号课程或二者都选修了的学生学号.课程号和成绩. (SELECT  学号, 课程号, 成绩 FROM   学习 WHERE   课程号='180101' ...

  9. Laravel 怎么使用资源控制器delete方法

    ### 在视图上,想删除某个数据,而控制器是使用了resources controller的 那么在删除数据的时候,还是有些需要注意的地方 ### 视图上: <a href="java ...

  10. 欲善其工必先利其器-----ThinkPad E430加装SSD固态硬盘和内存

    大概13年5月左右入手的小黑ThinkPad E430 当时辞职换工作换城市所以预算有限,4k左右大洋买下了这款笔记本电脑.3年左右的时间,一直使用单位电脑,偶尔使用小黑真心崩溃.你会发现你会有放弃使 ...