JavaScript事件介绍与使用

事件

1.概述

js事件可以是浏览器行为,也可以是用户行为.

如果是浏览器行为例如是页面加载完成事件。onload

如果是用户行为就是用户的一切操作都是发生的事件,鼠标操作事件(单击,双击,悬浮等),键盘操作事件(键盘录入等)。

2.常见事件

事件名描述
onload某个页面或图像被完全加载之后触发
onsubmit当表单提交时触发该事件—注意事件源是表单form
onclick鼠标点击某个对象
ondblclick鼠标双击某个对象
onblur元素失去焦点(输入框)
onfocus元素获得焦点(输入框)
onchange用户改变域的内容。一般使用在select标签中。
onkeydown某个键盘的键被按下
onkeypress某个键盘的键被按下或按住,一直按住
onkeyup某个键盘的键被松开
onmousedown某个鼠标按键被按下
onmouseup某个鼠标按键被松开
onmouseover鼠标被移到某元素之上 除了输入框
onmouseout鼠标从某元素移开 除了输入框
onmousemove鼠标被移动

3.html标签绑定事件

标签绑定事件:就是让上述的js事件作用在某个标签上

1.静态绑定

就是将事件名作为标签的属性名,在属性值中调用js函数。

需求:

1、给div标签绑定单击事件,输出div的文本

2、给div标签绑定鼠标悬浮事件,使其背景颜色变红

3、给div标签绑定鼠标移出事件,使其背景颜色变蓝

说明:定义一个div,并给div设置宽、高和背景颜色灰色:#ccc。

设置div的代码:

<style type="text/css">
			div {
				width: 200px;
				height: 200px;
				background-color: #ccc;/*灰色*/
			}
</style>

就是将事件名作为html标签的属性名,在属性值中调用js函数。

<标签名 事件名="调用的js函数" 事件名="调用的js函数" 。。。></标签名>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        div {
            width: 200px;
            height: 200px;
            background-color: #ccc;/*灰色*/
        }
    </style>

</head>
<body>
    <!--静态绑定事件:就是将事件名作为html标签的属性名,在属性值中调用js函数。-->
    <!--
        这里的this表示当前div标签对象
    -->
    <div onclick="fn1(this);" onmouseover="fn2(this);" onmouseout="fn3(this);">div1</div>
    <script type="text/javascript">
        //需求:
        // 1、给div标签绑定单击事件,输出div的文本
        function fn1(obj) {//obj=this
            //obj接收的是this表示上述的div标签对象
            console.log(obj.innerHTML);
        }
        // 2、给div标签绑定鼠标悬浮onmouseover事件,使其背景颜色变红
        function fn2(obj) {//obj=this
            obj.style.backgroundColor = 'red';
        }
        // 3、给div标签绑定鼠标移出onmouseout事件,使其背景颜色变蓝
        function fn3(obj) {
            obj.style.backgroundColor = 'blue';
        }

    </script>
</body>
</html>

小结:

html静态绑定js事件:

 <div onclick="fn1(this);" onmouseover="fn2(this);" onmouseout="fn3(this);">div1</div>

2.动态绑定:

就是根据dom技术获取某个标签对象,使用标签对象调用事件名,然后将匿名函数赋值事件名。

标签对象.事件名 = function(){
    
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        div {
            width: 200px;
            height: 200px;
            background-color: #ccc;/*灰色*/
        }
    </style>

</head>
<body>
    <!--动态绑定事件:就是根据dom技术获取某个标签对象,使用标签对象调用事件名,然后将匿名函数赋值事件名。-->
    <div>div1</div>
    <script type="text/javascript">
        //需求:
        // 1、给div标签绑定单击事件,输出div的文本
        //1.1获取标签对象
        let oDiv = document.getElementsByTagName('div')[0];
        //1.2给div绑定单击事件
        oDiv.onclick = function () {
            //这里的this是调用当前事件onclick的标签对象oDiv
            console.log(this.innerHTML);
        };
        // 2、给div标签绑定鼠标悬浮onmouseover事件,使其背景颜色变红
        oDiv.onmouseover = function () {
            this.style.backgroundColor = 'red';
        };
        // 3、给div标签绑定鼠标移出onmouseout事件,使其背景颜色变蓝
        oDiv.onmouseout = function () {
            this.style.backgroundColor = 'blue';
        };
    </script>
</body>
</html>

小结:

1.html绑定js事件有两种方式:

​ 1)静态绑定:将事件名作为标签的属性名,在属性值中调用js函数

<div onclick="fn(this);">柳岩</div>
<script type="text/javascript">
    
    // 1、给div标签绑定单击事件,输出div的文本
    function fn(obj) {//obj=this
        console.log(obj.innerHTML);
    }
    
</script>

​ 2)动态绑定:使用标签对象调用js事件,使用匿名函数给其赋值

let oDiv = document.getElementsByTagName('div')[0];
    //给上述div动态绑定js单击事件
    oDiv.onclick = function () {
        //this表示调用当前事件onclick的标签对象oDiv
        // console.log(oDiv.innerHTML);
        console.log(this.innerHTML);
    };

2.静态绑定和动态绑定区别?

​ 静态绑定缺点:js和html标签耦合在一起

​ 动态绑定:解耦合。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

攒了一袋星辰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值