【JS】事件基础

事件的概述

事件操作是JavaScript的核心。

用户进行操作时,触发了JavaScript的事件,然后会产生相对应的效果;例如:点击按钮会弹出对话框,这个点击操作就是一个事件,弹出对话框就是那个效果(事件过程)。

事件三要素

  1. 事件主角:按钮,div元素…等;
  2. 事件类型:点击,移动…等;
  3. 事件过程:事件发生的事情。

常见的事件

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

事件的调用

JavaScript中,事件的调用方式有两种:

  1. 在元素中调用
  2. 在script标签中调用

注意:使用在script标签中调用事件比较多,因为这样可以使得HTMLJavaScript代码分离。

在script标签中调用

<script></script>标签中调用。

语法

obj.事件名 = function(){
	....
};

这里的obj指的是DOM(Document Object Model)对象,指的是对应的元素节点document.body等等.

注意:语法最后面的分号需要加上,因为这是一个赋值语句,不加不会报错,但是为了规范最好加上

举例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>text</title>
</head>
<body>

    <input id="btn" type="button" value="按钮" />

    <script type="text/javascript">
    // 事件调用
        window.onload = function(){
            var btn = document.getElementById('btn');
            btn.onclick = function(){
                alert(this.value)
            }
        }
    </script>

</body>
</html>

在这里插入图片描述

在元素中调用

在元素中调用即存在事件属性,对该事件属性赋值即可。

举例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>text</title>
</head>
<body>
	
	<!--元素中调用click点击事件-->
    <input id="btn" type="button" value="按钮" onclick="xxx()"/>

    <script type="text/javascript">
        xxx = function(){
            alert("出错")
        }
    </script>

</body>
</html>

在这里插入图片描述

鼠标事件

顾名思义,就是和鼠标有关的事件。点击鼠标会有什么效果,鼠标移动到那会有什么效果,离开那又有什么效果…等。

常见的鼠标事件:

在这里插入图片描述

可以根据英文来记忆(上述事件都是以on开头的):
click:点击
mouse:鼠标

😒注意:平日里鼠标单击事件经常和按钮挂钩,但并不是只能用在按钮上,任何元素都是可以添加鼠标事件的。

onclick事件

下面用div标签模拟一下onclick事件,说明一下不是只使用于按钮

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>text</title>

    <style type="text/css">
        #text{
            text-align:center;
        }

        #text:hover{
            color:pink;
            cursor:pointer;
            text-decoration:underline;
        }
    </style>
    <script type="text/javascript">
        window.onload = function(){
            var text = document.getElementById('text');
            text.onclick = function(){
                alert("傻逼");
            }
        }
    </script>

</head>
<body>

<div id="text">哈哈哈</div>

</body>
</html>

在这里插入图片描述
在这里插入图片描述

onmouseover和onmouseout

可以从字面上发现其怎么用,on后面指出事件,mouse鼠标,over覆盖,也就是鼠标移动到这个元素时进行的事件过程;反之onmouseout就是鼠标移出该元素进行的事件过程。

注意:是碰到元素,不是元素中的文本内容;

测试:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>text</title>

<!--    <style type="text/css">-->
<!--        #text{-->
<!--            text-align:center;-->
<!--        }-->

<!--        #text:hover{-->
<!--            color:pink;-->
<!--            cursor:pointer;-->
<!--            text-decoration:underline;-->
<!--        }-->
<!--    </style>-->
    <script type="text/javascript">
        window.onload = function(){
            var text = document.getElementById('text');
            text.onmouseover = function (){
                this.style.color = "pink"
                this.style.textAlign = "center"
            }
            text.onmouseout = function (){
                this.style.color = "black"
            }
        }
    </script>

</head>
<body>

<div id="text">哈哈哈</div>

</body>
</html>

这是div元素这个“默认盒子”:
在这里插入图片描述

当鼠标移动到该元素上时(不移动到文本内容上也可以),也就是该“盒子”上:
在这里插入图片描述

onmousedown和onmouseup

和上面差不多;只不过这是对应着鼠标点击后和鼠标松开对应的事件过程。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>text</title>

<!--    <style type="text/css">-->
<!--        #text{-->
<!--            text-align:center;-->
<!--        }-->

<!--        #text:hover{-->
<!--            color:pink;-->
<!--            cursor:pointer;-->
<!--            text-decoration:underline;-->
<!--        }-->
<!--    </style>-->
    <script type="text/javascript">
        window.onload = function(){
            var text = document.getElementById('text');
            text.onmousedown = function (){
                this.style.color = "pink"
                this.style.textAlign = "center"
            }
            text.onmouseup = function (){
                this.style.color = "black"
                this.style.textAlign = "left"
            }
        }
    </script>

</head>
<body>

<div id="text">哈哈哈</div>

</body>
</html>

测试效果:点的时候哈哈哈在中间,不点在左边。

页面事件

一般来说,想要获取某个节点,然后又想要HTML代码和JavaScript代码分开。这个时候就应该要想到页面事件。在JavaScript中,常用页面事件只有两个,一个是onload,一个是onbeforeunload

onload

首先代码是从上向下执行的,如果想要等代码执行完再执行一段代码,这个时候onload就派上用场了。如果节点还未加载,就直接加载函数,然后函数里面调用了该节点那肯定会出问题的,onload可以让代码加载完再去执行该函数。

其实前面的代码都用了这个页面事件,所以这里就不举例了。语法就是:

window.onload = function(){}

onbeforeunload

该事件在关闭该页面时会发生事件过程。

<!DOCTYPE html> 
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script>
        window.onload = function () 
        {
            alert("欢迎!");
        }
        window.onbeforeunload = function (e) 
        {
            e.returnValue = "记得下来再来喔!";
        }
    </script>
</head>
<body>
</body>
</html>

this

根据事件的语法:

obj.事件名 = function(){}

function()大括号中用的this就和obj是等价的。(例如obj.valuethis.value等价)

其他事件

可以看Javascript基础进行更多事件的了解。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

假正经的小柴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值