节点类型
文档(html) 元素 属性 文本 注释
如何判断节点类型(简述常用属性)
节点.nodeType
事件委托
事件委托就是利用事件冒泡,只制定一个时间处理程序,就可以管理某一类型的所有事件。
例子
:节点树,div>ul>li>a;比如给最里面的a加一个click点击事件,那么这个事件就会一层一层的往外执行,执行顺序a>li>ul>div,有这样一个机制,那么我们给最外面的div加点击事件,那么里面的ul,li,a做点击事件的时候,都会冒泡到最外层的div上,所以都会触发,这就是事件委托,委托它们父级代为执行事件
好处:减少与dom的交互次数,提高性能
- 管理的函数变少了。不需要为每个元素都添加监听函数。对于同一个父节点下面类似的子元素,可以通过委托给父元素的监听函数来处理事件。
- 可以方便地动态添加和修改元素,不需要因为元素的改动而修改事件绑定。
- JavaScript和DOM节点之间的关联变少了,这样也就减少了因循环引用而带来的内存泄漏发生的概率。
适合事件委托的事件
click,mousedown,mouseup,keydown,keyup,keypress。(所有用到按钮的事件,多数的鼠标事件和键盘事件) 值得注意的是,mouseover和mouseout虽然也有事件冒泡,但是处理它们的时候需要特别的注意,因为需要经常计算它们的位置,处理起来不太容易。
什么是事件流?事件捕获?或者冒泡?
事件流:随着DOM树的节点向目标元素节点流去,直到到达事件真正发生的目标元素所经过的元素
• 事件捕获:依次由外向内直到找到事件所在元素
• 事件冒泡:就是事件从最深的节点开始,然后逐步向上传播事件
- 如何添加一个dom对象到body中?innerHTML和innerText有什么区别?
阻止事件冒泡
事件兼容:var evt = e ? e:window.event;
w3c e.stopPropagation()
IE e.cancelBubble = true
版权声明:本文为weixin_43091563原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。