欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript中的事件

程序员文章站 2022-03-08 23:10:10
...

1.什么是事件

事件是电脑输入设备与页面之间的交互的响应
输入设备:鼠标、键盘、写字板等。
交互:点击、滑动鼠标,用写字板,键盘打字等操作

2.事件的注册

什么叫事件的注册(绑定)?
就是告诉浏览器,事件响应后需要执行什么操作代码

2.1 静态注册

通过HTML标签的事件属性直接赋予事件响应后的代码,这种我们叫做静态注册

2.2 动态注册

先通过js代码获取标签的dom对象,然后再通过dom对象.事件名 = function(){}这种形式赋予响应后的代码,叫做动态注册

动态注册基本步骤:
1.获取标签的dom对象
2.dom对象.事件名 = function(){}

3.常用的事件

3.1 onload 加载完成事件

onload 事件是浏览器解析完页面后就会自动触发的事件

<!DOCTYPE html>
<html lang="CN">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script type="text/javascript">
      //页面加载完成事件
      //onload事件的方法
      function onloadfun(){
        alert('静态注册onload事件,所有代码')
      }

      //onload事件动态注册是固定写法
      window.onload = function (){
        alert('动态注册的onload事件')
      }
  </script>
</head>
<body>
<!--静态注册onload事件
    <body onload = "onloadFun();">-->
</body>
</html>

JavaScript中的事件

3.2 onclick 单击事件

onclick 是单击事件,常用于“按钮”的点击响应操作

<!DOCTYPE html>
<html lang="CN">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script type="text/javascript">
    //单击事件
    //静态注册onclick事件
    function onclickFun(){
      alert('静态注册onclick事件')
    }
    //动态注册onclick事件
    window.onclick = function (){
      //获取标签对象
      /**
       * getElementById()  通过ID获取标签对象
       */
      var btnObj = document.getElementById("btn01")
      //alert(btnObj)
      btnObj.onclick = function (){
        alert('动态注册onclick事件')
        }
    }
  </script>
</head>
<body>
<button onclick="onclickFun()">按钮1</button>
<button id="btn01" >按钮2</button>
</body>
</html>

点击按钮1,浏览器做出的响应
JavaScript中的事件
点击按钮2,浏览器做出的响应
JavaScript中的事件

3.3 onblur 失去焦点事件

常用于“输入框”失去焦点后验证其输入内容是否合法
//console是控制台对象,由js语言提供,专门用来向浏览器的控制器打印输出,用于测试使用
//log是打印方法

<!DOCTYPE html>
<html lang="CN">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script type="text/javascript">
    //onblur 失去焦点事件
    //静态注册onblur事件
    function onblurFun(){
      console.log('静态注册失去焦点事件')
    }
    //动态注册失去焦点事件
    window.onload = function (){
      //1.获取标签对象
      var passwordObj = document.getElementById("password");
      //2.通过标签对象.事件名 = function(){};
      passwordObj.onblur = function (){
        console.log('动态注册失去焦点事件')
      }
    }
  </script>
</head>
<body>
  <!--创建输入框-->
  用户名:<input type="text" onblur="onblurFun()"/><br/>
  密码:<input id = 'password'  type="text"/><br/>
</body>
</html>

点击用户名文本框,再敲击F12,console中会出现“静态注册失去焦点事件”
点击密码文本框,再敲击F12,console中会出现“动态注册失去焦点事件”
JavaScript中的事件

3.4 onchange 内容发生改变事件

常用于“下拉列表和输入框”内容发生改变后操作

<!DOCTYPE html>
<html lang="CN">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script type="text/javascript">
  //静态注册内容发生改变事件
  function onchangeFun(){
    alert('你的女神改变了!')
  }
  window.onload = function (){
  //动态注册内容发生改变事件,固定格式
  // 1.获取标签对象
    var selObj = document.getElementById("sel01");
    //alert(selObj);
  // 2.通过标签对象.对象名 = function(){}
    selObj.onchange = function (){
      alert('你的男神改变了!')
    }

  }
  </script>
</head>
<body>
<!--静态注册内容发生改变事件-->
请选择你心中的女神
<select onchange="onchangeFun()">
  <option>---女神---</option>
  <option>范冰冰</option>
  <option>刘亦菲</option>
  <option>章子怡</option>
  <option>张嘤嘤</option>
</select><br/>

<!--动态注册onchange事件-->
请选择你心中的男神
<select id="sel01">
  <option>---男神---</option>
  <option>刘德华</option>
  <option>胡歌</option>
  <option>梁朝伟</option>
  <option>李小龙</option>
</select><br/>
优点1<input type="text"/><br/>
优点2<input type="text"/><br/>
</body>
</html>

在这里插入图片描述
JavaScript中的事件
JavaScript中的事件

3.5 onsubmit 表单提交事件

常用于“表单”提交前,验证所有表单项是否合法

<!DOCTYPE html>
<html lang="CN">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script type="text/javascript">
    //静态注册表单提交事件
    function nosubmitFun(){
      //要验证所有表单项是否合法,如果有一个不合法就就不允许提交
      alert('静态注册onsubmit事件-----发现不合格!');

      return false;
    }

    //动态注册表单提交事件
    window.onload = function () {

      //1.获取标签对象
      var subObj = document.getElementById("Id01");

      //2.通过标签对象.对象名 = function(){}
      subObj.onsubmit = function (){
        alert('静态注册onsubmit事件-----发现不合格!');

        return false;
      }
    }
  </script>
</head>
<body>
<!--静态注册onsubmit事件-->
<form action="http://localhost:8080" method="get" onsubmit="return nosubmitFun()">
  <input type="submit" value="静态注册">
</form>
<!--动态注册onsubmit事件-->
<form id="Id01" action="http://localhost:8080" method="get" >
  <input type="submit" value="动态注册">
</form>
</body>
</html>

点击静态注册按钮
JavaScript中的事件
点击动态注册按钮
JavaScript中的事件

相关标签: javascript