JS 事件机制完整示例分析


Posted in Javascript onJanuary 15, 2020

本文实例讲述了JS 事件机制。分享给大家供大家参考,具体如下:

<html>
    <head>
        <title>js事件机制</title>
        <meta charset="UTF-8"/>
        <script type="text/javascript">
            function testOnclick(){
                alert("我是单击事件");
            }
            function testdblOnclick(){
                alert("我是双击事件");
            }
            function testOnmouseover(){
                alert("我是鼠标悬停事件");
            }
            function tsetOnmousemove(){
                alert("我进行了移动");
            }
            function testOnmouseout(){
                alert("我被移出了");
            }
            function testOnkeydown(){
                alert("键盘按下事件");
            }
            function testOnkeyup(){
                alert("键盘抬起事件");
            }
            function testOnkeypress(){
                alert("键盘按压事件触发")
            }
            function testOnfouse(){
                alert("焦点确认定位");
            }
            function testOnblur(){
                alert("我失去了焦点");
            }
            function tsetOnload(){
                alert("页面进行了重新加载");
            }
//            tsetOnload();
            function testOnchange(){
                alert("发生了改变");
            }
            function testbreak(){
                alert("阻断事件触发");
            }
            function testbreaktrue(){
                alert("阻断,我可不只是说说");
                return false;
            }
            function testHref(){
                alert("超链接提示");
            }
        </script>
        <style type="text/css">
            #showdiv{
                width: 100;
                height: 200;
                border: solid 1px;
            }
            input[type=text]{
                width: 300px;
                height: 20px;
                border: solid 2px aqua;
            }
            hr{
                height: 10px;
                background-color: bisque;
                border-radius: 10px;
            }
        </style>
    </head>
    <body onload="tsetOnload();">
        <h3>js事件机制</h3>
        <input type="button" id="" value="测试单击" onclick="testOnclick();"/>
        <input type="button" id="" value="测试双击" ondblclick="testdblOnclick();"/>
        <hr />
        <div id="showdiv" onmouseover="testOnmouseover();" onmousemove="tsetOnmousemove();" onmouseout="testOnmouseout();" >
        </div>
        <hr />
       <!--下面在文本框中添加的事件触发有事件的冲突,onkeydown和onkeypress会在按下一个按键的时候触发,但是由于触发了显示框事件导致按下按钮后一直出现,而使onkeyup无法触发-->
        <input type="text" id="" value="" onkeydown="testOnkeydown()" onkeyup="testOnkeyup();" onkeypress="testOnkeypress();"/>
        <hr />
                <!--失去焦点的时候会一直显示,因为在失去焦点操作中使显示框显示,其本来就是一个失去焦点的操作-->
        <input type="text" name="" id="" value="" onfocus="testOnfouse()" onblur="testOnblur()"/>
        <br />
        <input type="text" name="" id="" value="" onchange="testOnchange();"/>
        <br />
        比较喜欢的动漫角色:<br />
        <select name="" id="" onchange="testOnchange();">
            <option value="">古河渚</option>
            <option value="">藤和艾利欧</option>
            <option value="">佐仓千代</option>
            <option value="">筒隐月子</option>
        </select>
        <hr />
        <!--<a href="http://wwww.baidu.com" rel="external nofollow" rel="external nofollow" target="_blank" onclick="testbreak();">百度一下</a>-->
        <hr />
        <a href="http://wwww.baidu.com" rel="external nofollow" rel="external nofollow" target="_blank" onclick="return testbreaktrue();">百度一下</a> <!-- 必须函数和调用都含有return才能进行有效的阻断-->
        <hr />
        <a href="javascript:testHref()" rel="external nofollow" >超链接点击</a>
    </body>
</html>

事件触发机制使为了更好的实现网页与用户的交互,如果仅仅只在js代码域中定义函数,那么我们仅仅只能在代码中自己调用,用户无法触发函数,所以我们利用函数对一系列操作进行封装,在body中调用事件触发机制进行调用,这样当用户触发某个事件的时候就会触发一系列的操作。

注:在一系列的事件触发机制中,我们可以在一个标签中添加多个事件触发机制,但是我们必须在适当的地方设置,而且,对于多个事件机制其也会产生冲突,一个方面可能是因为触发机制的冲突(比如单双击)另一方面可能因为调用的函数引起的(比如焦点失去和显示框显示)

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Javascript之文件操作
Mar 07 Javascript
文本框输入时 实现自动提示(像百度、google一样)
Apr 05 Javascript
JQuery中DOM事件合成用法实例分析
Jun 13 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
May 11 Javascript
Javascript实现信息滚动效果
May 18 Javascript
收藏AngularJS中最重要的核心功能
Jul 09 Javascript
React根据宽度自适应高度的示例代码
Oct 11 Javascript
vue环境搭建简单教程
Nov 07 Javascript
使用vue-aplayer插件时出现的问题的解决
Mar 02 Javascript
分析javascript原型及原型链
Mar 18 Javascript
详解一些适用于Node.js的命名约定
Dec 08 Javascript
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 Vue.js
JS实现滑动插件
Jan 15 #Javascript
JS实现滑动导航效果
Jan 14 #Javascript
解决 window.onload 被覆盖的问题方法
Jan 14 #Javascript
vue quill editor 使用富文本添加上传音频功能
Jan 14 #Javascript
JavaScript事件冒泡机制原理实例解析
Jan 14 #Javascript
JS window对象简单操作完整示例
Jan 14 #Javascript
让mocha支持ES6模块的方法实现
Jan 14 #Javascript
You might like
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
php压缩文件夹最新版
2018/07/18 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
js中indexof的用法详细解析
2013/12/24 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
JS获取图片lowsrc属性的方法
2015/04/01 Javascript
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
Javascript中神奇的this
2016/01/20 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
jQuery图片轮播实现并封装(一)
2016/12/03 Javascript
js注册时输入合法性验证方法
2017/10/21 Javascript
JavaScript 异步调用
2017/10/25 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
对node.js中render和send的用法详解
2018/05/14 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
js实现简单点赞操作
2020/03/17 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
[01:39:42]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
利用soaplib搭建webservice详细步骤和实例代码
2013/11/20 Python
Python入门篇之数字
2014/10/20 Python
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
python实现转圈打印矩阵
2019/03/02 Python
python利用7z批量解压rar的实现
2019/08/07 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
教师自荐信范文
2013/12/09 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers