事件代理

js 对象的插入前后方法

insertBefore()插入在前

appendChild()在之后

事件委托:

利用事件冒泡作用:

1减少代码。

2其中Event对象提供了一个属性叫target,可以返回事件的目标节点,我们称为事件源,也就是说,target就可以表示为当前的事件操作的dom,但是不是真正操作dom,当然,这个是有兼容性的,标准浏览器用ev.target,IE浏览器用event.srcElement,此时只是获取了当前节点的位置,并不知道是什么节点名称,这里我们用nodeName来获取具体是什么标签名,这个返回的是一个大写的,我们需要转成小写再做比较(习惯问题)

obj.addEventListener('click',function(ev){
var event=ev||window.event
// 获得目标节点的兼容写法
var target=event.target||event.srcElement
// console.log(target.getAttributeNode("id").nodeValue)
// 属性节点
// if(target.getAttributeNode("id").nodeValue=='select'){

//alert('babi')
// }

简便写法:
if(target.id=='select'){
    alert("babi")
}

这是事件冒泡;代码如下从内到外(没毛病) false 为事件冒泡,true事件捕获

document.addEventListener("click",function(){
console.log("QQ3")
},false)
body.addEventListener("click",function(){
console.log("QQ2")
},false)
p.addEventListener("click",function(){
console.log("QQ1")
},false)

 

原文地址:https://www.cnblogs.com/aaaaap/p/10472987.html