博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript 冒泡 解决过多节点绑定事件的问题
阅读量:5064 次
发布时间:2019-06-12

本文共 1362 字,大约阅读时间需要 4 分钟。

我们知道在页面渲染中事件的绑定占很大一部分时间。当页面有很多节点需要绑定事件的时候那么页面渲染将会非常的慢。有些人会说我们在domReady之后在做不就没有影响了么。但是那样会影响用户使用体验。

一个冒泡应用简单的例子:

1     
    2
  • 第一项
  • 3
  • 第二项
  • 4
  • 第三项
  • 5
6

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>冒泡应用简单的例子</title> </head> <body> <ul> <li>第一项</li> <li>第二项</li> <li>第三项</li> </ul> <script> var ulDom = document.getElementsByTagName('ul')[0]; ulDom.onclick = function(e){ e = e || event; alert(e.target.innerHTML); } </script> </body> </html>

运行代码

我们子节点上面触发的事件被父节点冒泡型事件扑捉到。通过target属性我们可以知道是那个节点触发的事件。

延伸一下,我们看一下实例:

1     
    2
  • 弹出nodeName
  • 3
  • 显示事件名称
  • 4
  • 关闭窗口
  • 5
6

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>冒泡应用简单的例子</title> </head> <body> <ul> <li rel="event1">弹出nodeName</li> <li rel="event2">显示事件名称</li> <li rel="event3">关闭窗口</li> </ul> <script> var ulDom = document.getElementsByTagName('ul')[0]; var eventList = { event1 : function(){ alert(this.nodeName); }, event2 : function(){ this.innerHTML = "event2"; }, event3 : function(){ window.close(); } } ulDom.onclick = function(e){ e = e || event; var eventName = e.target.getAttributeNode('rel').value; eventList[eventName].call(e.target,e); } </script> </body> </html>

运行代码

本文只起到一个抛砖引玉的作用

转载于:https://www.cnblogs.com/soom/archive/2012/06/15/2550321.html

你可能感兴趣的文章
operator new,new operator,placement new的区别
查看>>
webbench
查看>>
$.cookie is not a function
查看>>
HTTP与HttpServlet
查看>>
ajax 上传读取excel
查看>>
学习之模块架构 DotNetNuke 6
查看>>
GIS+=地理信息+容器技术(4)——Docker执行
查看>>
js跨域解决方式
查看>>
java对象是如何创建的
查看>>
7-1 抓老鼠啊~亏了还是赚了? (20 分)
查看>>
《Python编程从入门到实践》学习笔记8(第9章:类)
查看>>
Hibernate
查看>>
fedora 使用 vnc 远程 fedora 28 主机
查看>>
cocos2dx + vs安装使用
查看>>
CentOS 7下安装Logstash ELK Stack 日志管理系统(上)
查看>>
自然数e这家伙怎么蹦跶出来的?
查看>>
经常使用命令 echo、@、call、pause、rem
查看>>
PHP设计模式之适配器模式
查看>>
康托尔定理是如何证明的?
查看>>
Google Guice结合模式
查看>>