JS事件基础和事件处理器学习笔记

写在之前

  • 什么是事件?
    • 当我们点击<input>元素的按钮后,浏览器会进行各种操作,如: 提交表单等。在这个例子里,我们点击就是一个事件。
  • 一个事件应该被分为3部分:
    • 事件主角,是按钮、div元素等,在上面例子中,按钮就是事件主角。
    • 事件类型,是点击、移动、悬浮等,在上面例子中,事件类型是点击。
    • 事件过程,在这个事件中都发生了什么,在上面例子中,提交表单就是事件过程。
  • 事件处理器,如:onclick,不能为一个DOM对象创建多个相同事件,在需要给一个DOM对象创建多个相同事件时,只能使用事件监听器
    • 如:很多个window.onload,JavaScript只会处理最后一个window.onload,这时就需要使用事件监听器。
  • 使事件处理器等于null可以解除事件处理器,如:DOMObject.onclick = null; 。

JavaScript中常见事件(按事件主角划分)

  1. 鼠标事件
  2. 键盘事件
  3. 表单事件
  4. 编辑事件
  5. 页面事件

调用事件的方法

在<script>元素中调用
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <script>
            window.onload = function()
            {
                var oInput2 = document.getElementsByClassName("class1")[0];
                oInput2.onclick = function()
                {
                    var oInput1 = document.getElementById("id_1");
                    alert(oInput1.value);
                }
            }
        </script>
    </head>
    <body>
        <input id="id_1" type="text"/>
        <input class="class1" type="button" value="按钮"/>
    </body>
</html>

DOMObject.onclick = function()
{
};

  1. DOMObject是指一个DOM对象,也就是一个元素对象,可以使用getElementById()、getElementsByTagName()、getElementsByClassName()等方法获取。
    获取元素节点

  2. onclick是事件名,也可以使用其他事件名,如:onkeydown表示键盘按下事件。

  3. 最后加分号的原因是,这个本质上是赋值语句,JS每条语句结尾都需要加上";",但不加也不会报错。

在元素中调用
  • 使用元素的事件属性来调用事件。
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <script>
             function event1()
             {
                 var oInput1 = document.getElementById("id_1");
                 alert(oInput1.value);
             }
        </script>
    </head>
    <body>
        <input id="id_1" type="text"/>
        <input class="class1" type="button" value="按钮" onclick="event1()"/>
    </body>
</html>

更倾向于使用在<script>元素中进行事件操作

鼠标事件

  • 常见的鼠标事件有6种:
鼠标事件作用
onclick用于表示鼠标单击事件,鼠标点击并松开这一整个过程才算鼠标单击
onmouseover用于表示鼠标移入事件,如鼠标移入div元素
onmouseout用于表示鼠标移出事件
onmouseout用于表示鼠标移出事件
onmousedown用于表示鼠标按下事件
onmouseup用于表示鼠标抬起事件
onmousemove用于表示鼠标移动事件
鼠标单击事件
  • 我们可以为任何元素添加鼠标单击事件。
鼠标移入、移出事件
  • onmouseover表示用户把鼠标移到某一个元素上。
  • onmouseout表示用户把鼠标移出某个元素。

下面的示例代码表示:

  1. 鼠标移入div元素,触发移入事件:把div元素的background-color变成蓝色。
  2. 鼠标移出div元素,触发移出事件:把div元素的background-color变成红色。
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <style type="text/css">
            div{border:1px solid black;background-color:red;width:100px;height:100px;padding:20px;text-align:center;vertical-align:middle;}
        </style>
        <script>
            window.onload = function()
            {
                var oDiv = document.getElementById("div1");
                oDiv.onmouseover = function()
                {
                    oDiv.style.backgroundColor = "blue";
                };
                oDiv.onmouseout = function()
                {
                    oDiv.style.backgroundColor = "red";
                };
            };
        </script>
    </head>
    <body>
        <div id="div1">aaa</div>
    </body>
</html>
鼠标按下和鼠标松开事件
  • onmousedown表示用户按下鼠标。
  • onmouseup表示用户松开鼠标。
  • 鼠标按下和鼠标松开事件常用于实现拖拽等效果。

下面代码示例表示:

  1. 鼠标在div元素上按下,触发鼠标按下事件:把div元素的颜色改成蓝色。
  2. 鼠标在div元素上松开,触发鼠标松开事件:把div元素的颜色改成红色。
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <style type="text/css">
            div{border:1px solid black;background-color:red;width:100px;height:100px;padding:20px;text-align:center;vertical-align:middle;}
        </style>
        <script>
            window.onload = function()
            {
                var oDiv = document.getElementById("div1");
                oDiv.onmousedown = function()
                {
                    oDiv.style.backgroundColor = "blue";
                }
                oDiv.onmouseup = function()
                {
                    oDiv.style.backgroundColor = "red";
                }
            }
        </script>
    </head>
    <body>
        <div id="div1">aaa</div>
    </body>
</html>

键盘事件

  • 常见的键盘事件有2种:
j键盘事件作用
onkeydown用于表示键盘按下事件,表示键盘按下的瞬间就触发事件
onkeyup用于表示键盘松开事件,表示键盘松开的瞬间就触发事件
  • 键盘事件一般用于操作表单(如:统计输入字符个数)、操作动画(如:在游戏中控制游戏人物的行动)。
键盘按下事件
  • 键盘任何一个键按下的瞬间会触发键盘按下事件。
  • 因为是键盘按下的瞬间触发事件,所以用onkeydown事件来统计输入字符个数是会出错的,所以一般使用onkeyup来统计输入字符数量。

下面的示例程序表示:利用键盘按下事件统计输入字符数量。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <style type="text/css">
        </style>
        <script>
            window.onload = function()
            {
                var oText1 = document.getElementById("text1");
                var len = 0;
                oText1.onkeydown = function()
                {
                    len = oText1.value.length;
                    var oDiv = document.getElementsByClassName("class1")[0];
                    oDiv.innerHTML = len;
                }
            }
        </script>
    </head>
    <body>
        <input id="text1" type="text" />
        <div class="class1"></div>
    </body>
</html>
键盘松开事件
  • 键盘任何一个键松开的瞬间会触发键盘松开事件。
  • 键盘松开事件可以用来统计输入字符数量。
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <style type="text/css">
        </style>
        <script>
            window.onload = function()
            {
                var oText1 = document.getElementById("text1");
                var len = 0;
                oText1.onkeydown = function()
                {
                    len = oText1.value.length;
                    var oDiv = document.getElementsByClassName("class1")[0];
                    oDiv.innerHTML = len;
                }
            }
        </script>
    </head>
    <body>
        <input id="text1" type="text" />
        <div class="class1"></div>
    </body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值