面试题整理一:javascript中的事件
来源:互联网 发布:数据仓储具有以下特征 编辑:程序博客网 时间:2024/05/16 09:58
1、事件对象:
e=e||window.event; //IE和Chrome下是window.event, FF下是e
2、事件源:
e=e.target||e.srcElement ; //IE和Chrome下是srcElement FF,下是target
3、事件注册
ie:
element.attachEvent(type, function);
element.detachEvent(type, function);
非ie:
element.addEventListener(type,function,flag)
element.removeEventListener(type,function,flag);
element:文档节点、document、window 或 XMLHttpRequest。
type :字符串,事件名称,不含“on”,比如“click”、“mouseover”、“keydown”等。
function:实现了 EventListener 接口或者是 JavaScript 中的函数。
flag:是否使用捕捉,一般用 false。(true表示事件捕捉阶段执行,false表示事件冒泡阶段执行)
4、阻止事件冒泡
ie:e.cancelBubble=true;
非ie:e.stopPropagation();
5、阻止默认事件
ie:e.returnValue=false;
非ie:e.preventDefault;
6、事件流:事件冒泡和时间捕捉
捕获阶段是由上层元素到下层元素的顺序依次。而冒泡阶段则正相反。
7、事件委托:
如果你有一个很多行的大表格,在每个<tr>上绑定点击事件是个非常危险的想法,因为性能是个大问题。流行的做法是使用事件委托。
事件委托描述的是将事件绑定在容器元素上,然后通过判断点击的target子元素的类型来触发相应的事件。
事件委托依赖于事件冒泡
myTable.onclick = function () {
e = e || window.event;
var targetNode = e.target || e.srcElement;
// 测试如果点击的是TR就触发
if (targetNode.nodeName.toLowerCase() === 'tr') {
alert('You clicked a table row!');
}
}
- 面试题整理一:javascript中的事件
- 面试题整理(一)
- java 面试题整理《一》
- c++面试题整理(一)
- 腾讯面试题整理一
- Android ----------------- 面试题 整理 一
- hadoop面试题整理(一)
- JAVA 面试题整理(一)
- 面试题整理(一)
- .Net 面试题整理(一)
- 前端面试题整理一
- java 面试题整理一
- JavaScript 面试题汇总(一)
- javascript中的事件一
- php面试题收集与整理(一)
- C++面试题整理(一)
- 软件测试面试题整理一
- Android 面试题 整理(一)
- windows下wordcloud安装失败的解决方案
- 随便写写
- 前端多语言的切换
- sequence_item、sequence、sequencer、driver的关系
- DevicePolicyManager使用
- 面试题整理一:javascript中的事件
- STM32 Time pwm 输入检测
- ORA-07391: sftopn: fopen error, unable to open text file.
- Redis HASH 操作类型封装
- 关于JAVA代码添加到mysql数据库乱码??的问题解决方式
- JAVA IO流(对象的序列化)
- Android开发技术文章整理
- 写给前端面试者
- mvn install could not find artifact in local repository