技术沙龙记录1

dom事件流

是由浏览器生成的事件流,分捕获事件流和冒泡事件流,jquery只对冒泡事件流做了处理。

 document.getElementById('bug').removeEventListener('click', eventHandler, true); //处理捕获事件

 document.getElementById('bug').removeEventListener('click', eventHandler, false);//处理冒泡事件 

当前的浏览器生成的事件流是支持这两种的。

jquery事件常用方法:

//绑定事件

$('#btn1').bind/on('click',function(e){})

//解除绑定事件

$('#btn1').unbind/off('click',function(e){})

$('body').bind/on('custom_event',function(e){})

$('#div1').trigger('custom_event');//触发自定义custome_event事件

Event.preventDefault()//阻止默认事件

Event.stopPropgation()//停止冒泡

抽离操作行为,让行为独立演化

比如随着不同终端客户的产生,新的行为也随之产生。把行为抽离出来,这样模块化后的更易于扩展、解藕、重用,便于独立演化。类似于访问者模式。

AOP Aspect-oriented  programming 面向切向编程

将业务操作独立出来。

应用:当js里有继承关系时,子类会覆盖父类的方法,会导致父类里触发的一些事件无法触发。如果把这部分事件放到切面里来实现,就不会因为继承而给覆盖掉。

refer: https://github.com/cujojs/meld

原文地址:https://www.cnblogs.com/Gift/p/10382384.html