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 prototype截取字符串函数
Apr 01 Javascript
让ie运行js时提示允许阻止内容运行的解决方法
Oct 24 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
May 27 Javascript
js使用cookie记录用户名的方法
Nov 26 Javascript
jQuery中delegate()方法的用法详解
Oct 13 Javascript
JS动态生成年份和月份实例代码
Feb 04 Javascript
AngularJS实现进度条功能示例
Jul 05 Javascript
React props和state属性的具体使用方法
Apr 12 Javascript
vuex操作state对象的实例代码
Apr 25 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
Nov 22 Javascript
p5.js绘制创意自画像
Nov 04 Javascript
js实现盒子拖拽动画效果
Aug 09 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
web方式ftp
2006/10/09 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
2017/11/08 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
IE8 中使用加速器(Activities)
2010/05/14 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
动态加载脚本提升javascript性能
2014/02/24 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
Vue根据条件添加click事件的方式
2019/11/09 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python实现的tab文件操作类分享
2014/11/20 Python
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
详解用python写一个抽奖程序
2019/05/10 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
什么是类的返射机制
2016/02/06 面试题
android面试问题与答案
2016/12/27 面试题
学习之星事迹材料
2014/05/17 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
Python制作动态字符画的源码
2021/08/04 Python
MySQL时区造成时差问题
2022/04/13 MySQL
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python