js事件底层原理探究
2018-06-24 00:53:13来源:未知 阅读 ()
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <button>事件监听原理探究</button> <script> var btn = document.getElementsByTagName("button")[0]; // btn.addEventListener("click",fn1); // btn.addEventListener("click",fn2); var i=0; fn("click",fn1,btn); fn("click",fn2,btn); fn("click",fn3,btn); function fn1(){ i++; console.log("我是第一个监听"+i); } function fn2(){ i++; console.log("我是第二个监听"+i); } function fn3(){ i++; console.log("我是第三个监听"+i); } function fn(str,fn,ele){ //判断位置要注意:如果进入绑定事件本身,那么该事件已经本绑定了 //所以获取旧的事件必须在新的事件绑定之前 var oldEvent = ele["on"+str]; ele["on"+str] = function () { //不能直接执行函数,因为我们还不知道以前有没有绑定我同样的事件 //进行判断,如果以前有过绑定事件,那么把以前的执行完毕在执行现在的事件,如果没有就直接执行 //如果没有被定义过事件该事件源的该事件属性应该是null对应的boolean值是false //如果已经定义过事件该事件源的该事件属性应该是function本身对应的boolean值是true if(oldEvent){ //因为oldEvent本身他就是函数本身,那么后面加一个();就是执行函数 // console.log(oldEvent()+"oldEvent"+i); oldEvent(); fn(); }else{ //没有绑定过事件 fn(); console.log("没有绑定事件"); } } } </script> </body> </html>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:【vue入门】日志demo,增删改查的练习(无vuex版本)
下一篇:原型链图
- JS 控件事件小结 2020-03-25
- 分享JavaScript获取网页关闭与取消关闭的事件 2020-02-29
- 高性能JavaScript模板引擎实现原理详解 2020-02-15
- jQuery事件绑定用法详解 2019-12-29
- input标签内容改变的触发事件介绍 2019-11-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash