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 相关文章推荐
JS去除字符串的空格增强版(可以去除中间的空格)
Aug 26 Javascript
IE中的File域无法清空使用jQuery重设File域
Apr 24 Javascript
JSON与XML优缺点对比分析
Jul 17 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
Jun 24 Javascript
js代码延迟一定时间后执行一个函数的实例
Feb 15 Javascript
基于vue实现swipe分页组件实例
May 25 Javascript
微信小程序实现图片压缩功能
Jan 26 Javascript
小程序开发基础之view视图容器
Aug 21 Javascript
在 Vue.js中优雅地使用全局事件的方法
Feb 01 Javascript
深入了解JavaScript 的 WebAssembly
Jun 15 Javascript
使用webpack搭建pixi.js开发环境
Feb 12 Javascript
使用vue引入maptalks地图及聚合效果的实现
Aug 10 Javascript
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
php socket实现的聊天室代码分享
2014/08/16 PHP
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
js的.innerHTML = &quot;&quot;IE9下显示有错误的解决方法
2013/09/16 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
jQuery中hide()方法用法实例
2014/12/24 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
DOM操作一些常用的属性汇总
2015/03/13 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
2015/11/02 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
Angular实现响应式表单
2017/08/04 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
javaScript动态添加Li元素的实例
2018/02/24 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
详解Python中的正则表达式的用法
2015/04/09 Python
Python字符串中查找子串小技巧
2015/04/10 Python
Python socket编程实例详解
2015/05/27 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
jupyter 导入csv文件方式
2020/04/21 Python
世界上最大的在线汽车租赁预订平台:Rentalcars.com(支持中文)
2018/10/12 全球购物
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
一份Java笔试题
2012/02/21 面试题
财务管理专业应届毕业生求职信
2013/09/22 职场文书
后勤副校长自我鉴定
2013/10/13 职场文书
求职简历中自我评价
2014/01/28 职场文书
幼儿园教师考核制度
2014/02/01 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书