JavaScript事件代理是一种简单的技巧,通过它你可以把事件处理器添加到一个父级元素上,这样就不需要为每一个元素添加或者删除事件处理器,从而避免了内存泄露或者是遍历节点造成的性能下降。如果整个页面都采用同样事件流方式,当红色蓝色区域触发相同事件,冒泡法:先处理蓝色区域请求,捕获法:先处理红色区域...
分类:
编程语言 时间:
2015-05-16 23:07:17
阅读次数:
348
document.CreateDocumentFragment()旧的,效率低的方案循环情况。每个循环都对页面dom操作一次新方案。使用CreateDocumentFragmentdom拼凑好后,再操作页面dom是否支持 dom拼凑时注册事件?题外问题记录:事件代理性能永远优于直接绑定每个具体元素?...
分类:
编程语言 时间:
2015-05-11 14:32:45
阅读次数:
157
1、Bootstrap的作用域2、Bootstrap的类定义3、Bootstrap的插件定义4、Bootstrap的事件代理5、Bootstrap的对象数据缓存6、Bootstrap的防冲突7、作用域外如何使用Button类8、Bootstrap的单元测试Bootstrap的作用域Bootstrap...
分类:
其他好文 时间:
2015-04-29 19:34:58
阅读次数:
119
如果你想给网页添加点JavaScript的交互性,也许你已经听过JavaScript的事件代理(event delegation),并且觉得这是那些发烧友级别的JavaScript程序员才会关心的什么费解的设计模式之一。事实上,如果你已经知道怎么添加JavaScript的事件处理器(event h....
分类:
Web程序 时间:
2015-04-27 23:38:56
阅读次数:
164
之前有接触过事件代理,但是印象并不深刻。这次记下来加强印象。 用个大家比较常见的代码举例子: html dom结构: 001 002 003 需求:如果需要给每个li添加点击事件。 常规实现方法:遍历每个li,给每个li单独加点击事件。 缺点: 1、假如现在页面有很多...
分类:
编程语言 时间:
2015-04-22 00:23:41
阅读次数:
206
$(".div").on('click',function(e){
if(e.target=='input'){
console.log(e);
}
}
e为当前点击元素,input外层div添加事件可以减少dom元素加载。...
分类:
其他好文 时间:
2015-04-17 20:33:42
阅读次数:
108
javaSciprt事件中有两个很重要的特性:事件冒泡以及目标元素。
事件冒泡: 当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。
目标元素: 任何一个事件的目标元素都是最开始的那个元素,在我们的这个例子中也就是label。使用事件代理的话我们可以把事...
分类:
Web程序 时间:
2015-02-26 09:57:22
阅读次数:
150
1.用过百度的touch.js,挺差。原因一,它的事件代理是代理到最深层,而不是你指定的目标元素。比如,你设置了drag事件,代理了某个absolute元素a,a有子元素a-a,它也是absolute元素。你拖a-a,也能拖,但是a不动。你的本意是,只拖动a,不拖动a-a。原因二,touch.js的...
分类:
其他好文 时间:
2015-01-09 12:34:53
阅读次数:
135
本课主要来讲解一下jQuery是如何实现它的事件系统的。我们先来看一个问题:如果有一个表格有100个tr元素,每个都要绑定mouseover/mouseout事件,改成事件代理的方式,可以节省99次绑定,更何况它还能监听将来添加的tr元素。这就是jQuery中的live方法。这种机制使用的是事件冒泡...
分类:
其他好文 时间:
2014-12-18 16:51:55
阅读次数:
223
如果你想给网页添加点JavaScript的交互性,也许你已经听过JavaScript的事件代理(event delegation),并且觉得这是那些发烧友级别的JavaScript程序员才会关心的什么费解的设计模式之一。事实上,如果你已经知道怎么添加JavaScript的事件处理器(event ha...
分类:
Web程序 时间:
2014-10-26 01:35:06
阅读次数:
303