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显示选择目录对话框的代码
Nov 10 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
Oct 26 Javascript
js/jQuery对象互转(快速操作dom元素)
Feb 04 Javascript
JS 实现导航栏悬停效果
Sep 23 Javascript
JS实现鼠标单击与双击事件共存
Mar 08 Javascript
Javascript玩转继承(三)
May 08 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
Mar 19 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
Jan 25 Javascript
Node.js中的http请求客户端示例(request client)
May 04 Javascript
JavaScript之underscore_动力节点Java学院整理
Jul 03 Javascript
关于微信小程序map组件z-index的层级问题分析
Jul 09 Javascript
浅谈Layui的eleTree树式选择器使用方法
Sep 25 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怎样调用MSSQL的存储过程
2006/10/09 PHP
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
javascript下function声明一些小结
2007/12/28 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
vue v-for 使用问题整理小结
2019/08/04 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
[01:23:24]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第三场 2月7日
2021/03/11 DOTA
python版简单工厂模式
2017/10/16 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
详解Python的三种拷贝方式
2020/02/11 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
美国一家主打母婴用品的团购网站:zulily
2017/09/19 全球购物
Java如何读取CLOB字段
2013/10/10 面试题
行政诉讼答辩状
2015/05/21 职场文书
单位工作证明范本
2015/06/15 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python