zoukankan      html  css  js  c++  java
  • P10 提取行间事件

    1、第一个要说明的就是,在我们编写的代码中,一定要实现【行为】、【样式】、【结构】三者的分离

    怎么才能实现呢?

    这里我们就要用到window属性的onload事件了

    通过在<script>标签中添加window.onload = function(){ // 此处编写JS代码}

    来实现将行为代码写在head中也能正常执行的效果

    如果没有window.onload事件,下面的代码是不能正常执行的,控制台会提示错误信息。

    代码示例如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
            window.onload = function(){
                btn1.onclick = function (){ 
                    alert('JS中匿名函数的应用')
                }
            }
        </script>
    </head>
    <body>
        <input id="btn1" type="button" value="按钮">
    </body>
    </html>

    2、提取行间事件

    说明:

    提取行间事件的本质上就是在标签的行间添加属性,例如之前的改变按钮的值

    可以看到同样的代码写在body中是没有任何问题的,但是写在head中就不能执行了,原因就在于HTML页面的执行顺序是从上到下,下面的body还没有加载。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    <!--     <script>
            var obtn1 = document.getElementById('btn1');
            var btn = document.getElementById('btn');
            btn.onclick = function (){
                var oBtn1 = document.getElementById('btn1');
                alert('改变按钮的值为bbb')
                oBtn1.value = 'bbb';
            }
    
        </script> -->
    </head>
    <body>
        <!-- // 通过提取行间事件来修改标签的属性的值 -->
        <input type="button" value="按钮" id="btn1">
        <input id="btn" type="button" value="nihao">
        
        <script>
            var obtn1 = document.getElementById('btn1');
            var btn = document.getElementById('btn');
            btn.onclick = function (){
                var oBtn1 = document.getElementById('btn1');
                alert('改变按钮的值为bbb')
                oBtn1.value = 'bbb';
            }
    
        </script>
    </body>
    </html>

    当使用了上面的window.onload以后,写在head中的代码就可以正常执行了。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
            window.onload = function(){
                var obtn1 = document.getElementById('btn1');
                var btn = document.getElementById('btn');
                btn.onclick = function (){
                    var oBtn1 = document.getElementById('btn1');
                    alert('改变按钮的值为bbb')
                    oBtn1.value = 'bbb';
                }
            }
    
        </script>
    </head>
    <body>
        <!-- // 通过提取行间事件来修改标签的属性的值 -->
        <input type="button" value="按钮" id="btn1">
        <input id="btn" type="button" value="nihao">
    
        <!-- <script>
            var obtn1 = document.getElementById('btn1');
            var btn = document.getElementById('btn');
            btn.onclick = function (){
                var oBtn1 = document.getElementById('btn1');
                alert('改变按钮的值为bbb')
                oBtn1.value = 'bbb';
            }
    
        </script> -->
    </body>
    </html>

     下面的代码也是一种提取行间事件的示例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        
    </head>
    <body>
        <div id="div1" class="liuyonglin"></div>
        <script>
            var oDiv = document.getElementById('div1');
            oDiv.className = 'suwenyuan';
        </script>
    </body>
    </html>

    在控制台可以看到div标签的class属性的值变成了"suwenyuan"

  • 相关阅读:
    InstallShield 12 制作安装包
    php常用知识集锦
    Bootstrap是什么
    php实现简单的学生管理系统
    php实现邮箱激活功能
    php定界符<<<EOF讲解
    qq邮箱的SMTP服务器是什么
    mysqli一些常用方法及详解
    mysqli的简单工具包
    mysqli数据库操作简单实例
  • 原文地址:https://www.cnblogs.com/runmoxin/p/13160442.html
Copyright © 2011-2022 走看看