Jottings

  1. 采用addEventListener将同一个函数多次绑定在同一个元素上(相同阶段), 执行一次

    i.addEventListener(‘click’, fun, false);

    i.addEventListener(‘click’, fun, false);

    fun只被调用1次

    解绑只需一次

    i.removeEventListener(‘click’, fun, false);

    i.addEventListener(‘click’, fun, false);

    i.addEventListener(‘click’, fun, false);

    i.addEventListener(‘click’, fun, true);

    i.addEventListener(‘click’, fun, true);

    fun被调用2次, 捕获阶段一次,冒泡阶段一次

    解绑需2次,捕获阶段1次,冒泡阶段1次

    i.removeEventListener(‘click’, fun, false);

    i.removeEventListener(‘click’, fun, true);

  2. 采用attachEvent将同一个函数多次绑定在同一个元素上 , 执行多次

    i.attachEvent(‘onclick’, fun);

    i.attachEvent(‘onclick’, fun);

    i.attachEvent(‘onclick’, fun);

    fun被执行3次

    要采用多次detachEvent解绑

  3. 采用onclick将同一个函数多次绑定在同一个元素上 , 执行一次(不论ie还是chrome)
    i.onclick = fun;
    i.onclick = fun;
    i.onclick = fun;
    fun被执行1次,

    解绑只要1次,i.onclick = null

  4. onclick 和addEventListener绑定事件时,函数内部this指向dom元素,
    attachEvent绑定事件时,函数内部this指的是window