JS-有关事件的知识(重点手写通用的事件绑定或监听函数)
一.事件绑定:
写一个通用的事件绑定函数
若不是按钮,是一个a标签,它的默认行为是点击跳转,preventDefault()会阻止默认行为,不让跳转
二.事件冒泡:(利用上面的通用事件绑定函数)
1》事件冒泡的流程:
2》例子:
上述代码中:
①.点击p2p3p4p5p6取消,我们没有为这些标签绑定事件但是都会弹出取消的警示框,因为,事件冒泡的机制,p2p3p4标签会向上冒泡先找到div1,然后再冒泡找到body,发现body绑定了click取消事件,于是点击会触发该事件并弹出取消的警示框
(p5p6同理----->div2------->body)
②.在p1的点击事件中,若把e.stopProgagation()
注释掉,点击p1,会依次弹出“激活”“取消”的警示框,激活的警示框是自身的点击事件触发的,而取消的警示框是冒泡到body上,body的点击事件触发的。
加上e.stopProgagation()
后,会阻止事件冒泡,此时再点击p1则只会弹出激活
--------------------------------------------------------------------------------------------
三.事件代理:(在事件冒泡的机制基础上,我们才能实行事件代理)
JS事件代理就是通过给父级元素(例如:ul,tr等等)绑定事件,不给子级元素