zoukankan      html  css  js  c++  java
  • JS代码的位置与事件响应代码块的封装问题

    JS代码的位置
          我们可以将JavaScript代码放在html文件中任何位置,但是我们一般放在网页的head或者body部分。
       放在<head>部分
    最常用的方式是在页面中head部分放置<script>元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分。
      放在<body>部分
    JavaScript代码在网页读取到该语句的时候就会执行。
     注意
          Javascript作为一种脚本语言可以放在html页面中任何位置,但是浏览器解释html时是按先后顺序的,所以前面的script就先被执行。

          比如进行页面显示初始化的js必须放在head里面,因为初始化都要求提前进行(如给页面body设置css等);而如果是通过事件调用执行的function那么对位置没什么要求的。


    事件响应代码块的封装
    ★  事件响应代码的不同封装其页面响应效果也有所不同
    △ 测试 1 放在标签<head>中,或紧接着标签<body>的下方
    1. <script>
    2. /* document.onclick = function () {
    3. alert("You have clicked in the document!");
    4. };
    5. var img = document.getElementById("mainImage");
    6. img.onclick = function () {
    7. alert("You have clicked on the picture!");
    8. };*/
    9. /* 若将document.onclick放在img onclick事件之前,那么只会提示document的onclick */
    10. /* 若将img onclick放在document.onclick事件之前,那么无任何提示*/
    11. </script>
    △ 测试 2 放在内容标签之后
    1. <body>
    2. <img src="images/image.jpg" id="mainImage">
    3. document.onclick =function(){
    4. alert("You have clicked in the document!");
    5. };
    6. var img = document.getElementById("mainImage");
    7. img.onclick =function(){
    8. alert("You have clicked on the picture!");
    9. };
    10. //此时document.onclick与img.onclick的顺序不影响执行结果
    11. </body>
     

    推荐做法(正确的姿势...)

           将事件响应代码封装为函数,然后在window.onload中完成挂接工作。
    1. <script>
    2. functionDemo(){
    3. document.onclick =function(){
    4. alert("You have clicked in the document!");
    5. };
    6. var img = document.getElementById("mainImage");
    7. img.onclick =function(){
    8. alert("You have clicked on the picture!");
    9. };
    10. }
    11. window.onload =function(){
    12. Demo();
    13. }
    14. </script>
    这样子,script的代码块无论在head中还是body中,或者是body的不同位置,最终的执行结果都是一样的。
     



  • 相关阅读:
    SpringBoot20 集成SpringSecurity02 -> 利用SpringSecurity进行前后端分离的登录验证
    Angular问题04 模块导入错误???、BrowserModule模块重复加载???、material模块引入后报错
    基于http的多进程并发文件服务器
    准备面试的那些事儿2
    ubuntu中解决/usr/bin/ld: cannot find -lxxx
    kafka学习之相关命令
    linux中制作动态库
    kafka之c接口常用API------librdkafka
    kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
    <c和指针>学习笔记6输入输出函数
  • 原文地址:https://www.cnblogs.com/Jener/p/5982183.html
Copyright © 2011-2022 走看看