JavaScript之JS事件机制

一、JS事件机制

1、解释

当我们的行为动作满足了一定的条件后,会触发某类事务的执行。

2、作用

主要是结合js的函数来使用

3、内容

3.1 单双击事件

单机:onclick     当鼠标单击的时候会触发
双击:ondblclick  当鼠标双击的时候会触发

3.2 鼠标事件

onmouseover      当鼠标悬停在某个HTML元素上的时候会触发
onmousemove      当鼠标在某个HTML元素上移动的时候会触发
onmouseout       当鼠标在某个HTML元素上移出的时候会触发

3.3 键盘事件

onkeyup          当键盘在某个HTML元素上弹起的时候会触发
onkeydown        当键盘在某个HTML元素上下压的时候会触发

3.4 焦点事件

onfocus          当某个HTML元素获取焦点的时候会触发
onblur           当某个HTML元素失去焦点的时候会触发

3.5 页面加载事件

onload           当页面加载成功后触发

4、注意

(1) js中添加事件的第一种方式:
在HTML上直接使用事件属性进行添加,属性值为所监听执行的函数
(2) js中的事件只有在当前HTML元素上有效
(3) 一个HTML元素可以添加多个不同的事件
(4) 一个事件可以监听触发多个函数的执行,但是不同的函数要使用分号隔开

5、实例

<!DOCTYPE html>
<html lang = "en">
<head>
    <meta charset = "UTF-8">
    <meta name = "viewport" content = "width = device - width, initial - scale = 1.0">
    <meta http-equiv = "X-UA-Compatible" content = "ie-edge">
    <title>JavaScript之事件机制学习1</title>
    <script>
        //声明js函数
            //单击事件
                function testOnclick(){
                    alert("单击事件");
                }
            //双击事件
                function testOndblclick(){
                    alert("双击事件");
                }
            //鼠标事件
                function testOnmouseover(){
                    alert("鼠标悬停事件");
                }
                function testOnmousemove(){
                    alert("移动了");
                }
                function testOnmouseout(){
                    alert("从区域移出了");
                }
            //键盘事件
                function testOnkeyup(){
                    alert("键盘弹起事件");
                }
                function testOnkeydown(){
                    alert("键盘下压事件");
                }
            //焦点事件
                function testOnfocus(){
                    document.getElementById("showdiv").innerHTML="哈哈";
                    //alert("获取焦点事件");
                }
                function testOnblur(){
                    alert("失去焦点事件");
                }
            //页面加载
                function testOnload(){
                    alert("页面加载事件");
                }
            //测试
                function test(){
                    alert("测试一个事件的多个函数执行");
                }
    </script>
    <style type="text/css">
        #showdiv {
            width: 300px;
            height: 300px;
            border:solid 1px;
        }
    </style>
</head>
<body  onload = "testOnload()">
    <hr>
    <input type="button" name="" id="" value="测试单击" onclick="testOnclick();test();"/>
    <input type="button" name="" id="" value="测试双击" ondblclick="testOndblclick();"/>
    <hr/>
    <br/>
    <hr>
    <div id="showdiv" onmouseover = "testOnmouseover();" onmousemove="testOnmousemove();" onmouseout="testOnmouseout();">

    </div>
    <hr/>
    <br/>
    键盘事件学习:<br/>
        键盘弹起事件:<input type="text" name="" id="" value="" onkeyup="testOnkeyup();"/><br/>
        键盘下压事件:<input type="text" name="" id="" value="" onkeydown="testOnkeydown();"/><br/>
    焦点事件学习:<br/>
        获取焦点:<input type="text" name="" id="" value="" onfocus="testOnfocus();"/><br/>
        失去焦点:<input type="text" name="" id="" value="" onblur="testOnblur();"/><br/>
</body>
</html>

二、衍生思考

1、给合适的HTML标签添加合适的事件

onchange-----select下拉框
onload-------body标签
单双击-------用户会进行点击动作的HTML元素
鼠标事件-----用户会进行鼠标移动操作的
键盘事件-----用户会进行键盘操作的HTML元素

2、给HTML元素添加多个事件时,注意事件之间的冲突

当事件的触发条件包含相同部分的时候,会产生事件之间的冲突。

3、事件的阻断

当事件所监听的函数将返回值返回给事件时:
false:则会阻断当前事件所在的HTML标签的功能
true:则继续执行当前事件所在的HTML标签的功能

4、超链接调用js函数

<a href="javascript:函数名()">调用js函数</a>

5、实例

<!DOCTYPE html>
<html lang = "en">
<head>
    <meta charset = "UTF-8">
    <meta name = "viewport" content = "width = device - width, initial - scale = 1.0">
    <meta http-equiv = "X-UA-Compatible" content = "ie-edge">
    <title>JavaScript之事件机制学习2</title>
    <script>
        //值改变事件
            function testOnchange(){
                alert("值改变了");
            }
        //单机事件
            function testOnclick(){
                alert("单击事件");
            }
        //双击事件
            function testOndblclick(){
                alert("双击事件");
            }
        //事件的阻断
            function testA(){
                alert("事件的阻断");
                return false;
            }
        //超链接调用js函数
            function testHref(){
                alert("超链接调用");
            }
    </script>
</head>
<body>
    <h3>js的事件机制二</h3>
    <hr/>
    值改变事件:<input type="text" name="" id="" value="" onchange="testOnchange();"/>
    <select name="" id="" onchange="testOnchange();">
        <option value="">北京</option>
        <option value="">上海</option>
        <option value="">广州</option>
    </select>
    <hr/>
    事件的冲突:<br/>
    <input type="button" name="" id="" value="事件的冲突" onclick="testOnclick()" ondblclick="testOndblclick()"/> 
    <hr/>
    事件的阻断:<br/>
    <a href="http://www.baidu.com" target="_blank" onclick="return testA()">百度一下</a>
    <hr/>
    超链接调用js函数:
    <a href="javascript:testHref()">调用js函数</a>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

熊凯瑞

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

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

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

打赏作者

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

抵扣说明:

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

余额充值