事件是JS和HTML交互的方式。

事件流

事件流是HTML文档接收事件的顺序。分为2个流派:事件冒泡流和事件捕捉流。

事件冒泡流

由内到外

事件捕捉流

由外到内

DOM事件流

事件处理程序

跨浏览器时间处理程序

自定义一个EventUtil对象:

	var EventUtil = {
addHandler: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
},
removeHandler: function (element, type, handler) {
if (element.removeEventListener) {
element.removeEventListener(type, handler, false);
} else if (element.detachEvent) {
element.detachEvent("on" + type, handler);
} else {
element["on" + type] = null;
}
}, getEvent: function (event) {
return event ? event : window.event;
},
getTarget: function (event) {
return event.target || event.srcElement;
},
preventDefault: function (event) {
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
},
stopPropagation: function (event) {
if (event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubbles = true;
}
},
getRelatedTarget: function (event) {
if (event.relatedTarger) {
return event.relatedTarget;
} else if (event.toElement) {
return event.toElement;
} else if (event.fromElement) {
return event.fromElement;
} else { return null; } } }

最新文章

  1. [Hadoop in Action] 第1章 Hadoop简介
  2. uiwebview加载中文URL
  3. SQL基础篇----select语句与排序问题
  4. ODBC访问不到Server的问题
  5. <译>Selenium Python Bindings 3 - Navigating
  6. VB中的Dictionary对象
  7. NetAnalyzer笔记 目录
  8. RemindMe
  9. 【算法】LeetCode算法题-Two Sum
  10. Django之Models操作
  11. python 文本处理操作
  12. Bluedroid: 音频数据的传输流程
  13. Codeforces816A Karen and Morning 2017-06-27 15:11 43人阅读 评论(0) 收藏
  14. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException
  15. 最新版OpenWrt编译教程,解决依赖问题
  16. zookeeper的部署
  17. 利用jsPerf优化Web应用的性能
  18. .Net Core 自动化部署:使用jenkins部署到linux docker容器运行
  19. React.Component 与 React.PureComponent(React之性能优化)
  20. Linux 与 BSD

热门文章

  1. OpenShift应用镜像构建(3) - Jenkins的流水线构建
  2. NAT和SNAT
  3. Ubuntu下Firefox无法播放视频的解决方法
  4. leetcoder-50-Pow(x, n)
  5. windows下 memcached 和 redis 服务器安装
  6. HDU 3726 Graph and Queries treap树
  7. PAAS云服务平台
  8. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何使用随机数DRAND模块
  9. IntelliJ IDEA15,PhpStorm10,WebStorm11激活破解
  10. Struct2-使用随笔