JavaScript 事件绑定及深入

时间:2021-07-13 21:19:32

一.传统事件绑定的问题

解决覆盖问题,我们可以这样去解决:
window.onload = function () { //第一个要执行的事件,会被覆盖
  alert(1);
};
if (typeof window.onload == 'function') { //判断之前是否有 window.onload
  var saved = null; //创建一个保存器
  saved = window.onload; //把之前的 window.onload 保存起来
}
window.onload = function () { //最终一个要执行事件
  if (saved) saved(); //执行之前一个事件
  alert(2); //执行本事件的代码
};

//阻止事件的默认行为  return false; 
function preDef(evt) {
  var e = evt || window.event;
  if (e.preventDefault) {
    e.preventDefault();
  } else {
    e.returnValue = false;
  }
}

demo:https://github.com/sctnl/contextmenu.git