js 事件冒泡与阻止冒泡、事件委托

一.定义

事件冒泡 :IE的事件流叫做事件冒泡,即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。

事件捕获 :事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。

事件委托:事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。

二. 关于事件冒泡与阻止事件冒泡的用法:



  
    
    JS事件基础
    
    
  
  
    
    

当对按钮注册事件处理程序时,如果未阻止事件继续向上冒泡,将出现两个alert框,如果添加此行代码,将在此处阻止事件冒泡!

三. 关于事件委托的用法



	下拉列表的实现
	



	
	
  • 第一个列表点击我
  • 第二个列表点击我
  • 第三个列表点击我
  • 第四个列表点击我

在上述代码中,点击输入框即出现相应的列表内容,点击空白处,列表将消失。

此时需要注意应该在输入框的事件处理程序中做好阻止冒泡工作,若未阻止冒泡,此触发将向上延伸到文档层次,即列表又会被设置为none, 这样就会达不到我们想要的效果。

而关于其中的事件委托,如果不通过事件委托,我们要实现点击相应的 li 即出现相应的事件的话,即需为每个 li 注册相应的事件处理程序,可能会用到 for 循环等等,此时的性能并不是好的,当用事件委托时,即可管理其所有 li 的事件处理程序,达到性能优化的作用!

你可能感兴趣的:(前端,JavaScript)