jquery bind event, use on. $,document.on

$(document).on("click","#a",function(){alert(1)}) [#document] as a replacement of previous delegate etc..

event capture

netscape 和 微软 曾经的战争还是比较火热的,当时, netscape 主张捕获方式,微软主张冒泡方式。后来 w3c 采用折中的方式,平息了战火,制定了统一的标准——先捕获再冒泡。

事件的触发有三个阶段

  1. document 往事件触发地点,捕获前进,遇到相同注册事件立即触发执行
  2. 到达事件位置,触发事件(如果该处既注册了冒泡事件,也注册了捕获事件,按照注册顺序执行)
  3. 事件触发地点往 document 方向,冒泡前进,遇到相同注册事件立即触发

这么说很多人比较迷糊,我们在注册事件的时候,通常使用的是 捕获 或者 冒泡 的 一种:

obj.addEventListener("click", func, true); // 捕获方式
obj.addEventListener("click", func, false); // 冒泡方式