JS高程3:事件
2024-08-23 01:40:39
事件是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; } } }
最新文章
- [Hadoop in Action] 第1章 Hadoop简介
- uiwebview加载中文URL
- SQL基础篇----select语句与排序问题
- ODBC访问不到Server的问题
- <;译>;Selenium Python Bindings 3 - Navigating
- VB中的Dictionary对象
- NetAnalyzer笔记 目录
- RemindMe
- 【算法】LeetCode算法题-Two Sum
- Django之Models操作
- python 文本处理操作
- Bluedroid: 音频数据的传输流程
- Codeforces816A Karen and Morning 2017-06-27 15:11 43人阅读 评论(0) 收藏
- java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException
- 最新版OpenWrt编译教程,解决依赖问题
- zookeeper的部署
- 利用jsPerf优化Web应用的性能
- .Net Core 自动化部署:使用jenkins部署到linux docker容器运行
- React.Component 与 React.PureComponent(React之性能优化)
- Linux 与 BSD
热门文章
- OpenShift应用镜像构建(3) - Jenkins的流水线构建
- NAT和SNAT
- Ubuntu下Firefox无法播放视频的解决方法
- leetcoder-50-Pow(x, n)
- windows下 memcached 和 redis 服务器安装
- HDU 3726 Graph and Queries treap树
- PAAS云服务平台
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何使用随机数DRAND模块
- IntelliJ IDEA15,PhpStorm10,WebStorm11激活破解
- Struct2-使用随笔