事件注册与触发

  • 事件注册
  • 取消事件注册
  • 事件触发

eventTarget

事件注册

eventTarget.addEventListener(type,listener,[useCapture])

  1. var elem = document.getElementById('div1');
  2. var clickHandler = function(event){
  3. // TO DO
  4. }
  5. elem.addEventListener('click',clickHandler,false);

取消事件注册

eventTarget.removeEventListener(type,listener,[useCapture])

  1. elem.removeEventListener('click',clickHandler,false);
  2. elem.onclick=null;

事件触发

eventTarget.dispatchEvent(type)

浏览器兼容

  • 关于IE低版本的兼容性

    • IE低版本使用attachEvent绑定事件,和W3C标准不一样
  • 事件注册与取消

    • attachEvent/detachEvent
  • 事件触发

    • fireEvent(e)
  • no capture


事件兼容处理(W3C和IE低版本)

  1. var addEvent = document.addEventListener ?
  2. function functionName(elem,type,listener,useCapture) {
  3. elem.addEventListener(type,listener,useCapture);
  4. }:
  5. function functionName(elem,type,listener,useCapture) {
  6. elem.attachEvent('on' + type, listener);
  7. };
  8. var delEvent = document.removeEventListener ?
  9. function functionName(elem,type,listener,useCapture) {
  10. elem.removeEventListener(type,listener,useCapture);
  11. }:
  12. function functionName() {
  13. elem.detachEvent('on' + type, listener);
  14. };