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 页面刷新location.reload和location.replace的区别小结
Dec 24 Javascript
javascript 图片裁剪技巧解读
Nov 15 Javascript
用js实现输入提示(自动完成)的实例代码
Jun 14 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
Jun 25 Javascript
JavaScript中的定时器之Item23的合理使用
Oct 30 Javascript
自学实现angularjs依赖注入
Dec 20 Javascript
详解javascript中对数据格式化的思考
Jan 23 Javascript
js 递归和定时器的实例解析
Feb 03 Javascript
Thinkjs3新手入门之如何使用静态资源目录
Dec 06 Javascript
React数据传递之组件内部通信的方法
Dec 31 Javascript
基于vue-resource jsonp跨域问题的解决方法
Feb 03 Javascript
在vue中配置不同的代理同时访问不同的后台操作
Sep 11 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
destoon数据库表说明汇总
2014/07/15 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
php递归实现无限分类的方法
2015/07/28 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
总结一些js自定义的函数
2006/08/05 Javascript
ajax java 实现自动完成功能
2012/12/19 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
阿巴庭院:Abba Patio
2019/06/18 全球购物
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
laravel使用redis队列实例讲解
2021/03/23 PHP
家长会学生演讲稿
2014/04/26 职场文书
公司应聘自荐书
2014/06/14 职场文书
协议书范文
2015/01/27 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
php png失真的原因及解决办法
2021/10/24 PHP
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA