JavaScript中的事件流(IE与Firefox)

1. HTML DOM支持两种事件流:冒泡型事件流和捕获型事件流。捕获型事件流首先发生,两种事件流都会触及DOM中的所有对象。DOM事件流在FireFox中得到广泛支持,即事件发生从document对象开始,也在document对象结束。

2. DOM事件流最独特的地方在于文本节点也会触发事件。如果单击HTML中的文本节点,也会触发DOM事件流。IE并不完全支持DOM标准,所以IE中的文本节点并不能触发节点。

3.在Firefox中使用JavaScript动态添加或移除事件处理监听函数必须使用addEventListener()、removeEventListener()函数。两个函数都有三个参数:事件名称、需要分配或移除的事件监听函数、是否处于DOM事件流的捕获阶段。第三个参数若为true说明事件监听函数处于DOM事件的捕获阶段,若为false说明事件监听函数处于DOM事件流的冒泡阶段。

4.在Firefox中动态添加事件监听函数,事件名称和IE有很大区别,Firefox中事件名称没有on作为前缀。

5. 在DOM事件流,首先执行捕获阶段事件。然后执行冒泡阶段事件。所以在执行removeEventListener()函数移除事件监听函数时,必须保证第三个参数与监听函数所处事件流阶段相等,才能正确移除事件监听函数。当事件监听函数处于事件流冒泡阶段,使用removeEventListener()尝试在捕获阶段删除事件监听函数不会产生异常,但是事件监听函数并不会被移除。

6. 事件源在IE中只能是HTML元素、document对象、window对象,而在Firefox中认为文本节点也可以触发事件

7.IE获取事件源: 

var sender = event.srcElement;
Firefox获取事件源:
var sender = event.target;
8.IE获取按键字符代码:
var keyCode = event.keyCode;
Firefox获取按键字符代码:
var charCode = event.charCode;
var char = String.fromCharCode(charCode);
if(event.isChar)
{
      var charCode = event.charCode;
}

9. IE阻止事件的默认行为:

event.returnValue = false;
Firefox阻止事件的默认行为:
event.preventDefault();

10. IE停止事件的多次响应:

window.event.cancelBubble = true;
Firefox停止事件的多次响应:
event.stopPropagation();

仅调用一次事件处理函数,事件流就会停止响应。

11. 鼠标点击事件的顺序:mousedown事件、mouseup事件、click事件、dbclick事件

12. 当移动鼠标从页面一个元素进入另一个元素中时,首先在移出的元素上触发mouseout事件,然后在两个元素上都触发mousemove事件,最后在鼠标进入的元素上触发mouseover事件。

13. 键盘事件的触发顺序:

按下某字符按钮:keydown事件、keypress事件、keyup事件;

按下某非字符按钮:keydown事件、keyup事件。

当一只按下某字符按键,会一直触发keydown/keypress事件,直到按键弹起才会触发keyup事件。当一直按下某非字符按键,只会不断的触发keydown事件。

14.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值