事件模块的演变(8)
这篇为其增加几个功能
1,延迟handler的执行
2,handler可指定执行上下文,即有时可能需要handler内this不是HTMLElement
3,停止事件冒泡和阻止默认行为
4,阻止元素默认行为
5,停止事件冒泡
为此,将添加事件函数on的接口做了修改。第四个参数是个对象,分别可指定以下参数
E.on(el, 'click', fn, { once : // true则该handler仅执行一次 delay : // handler延迟执行的时间,以毫秒为单位 scope : // handler执行上下文,默认为el stopEvent : // 阻止el默认行为,停止冒泡 preventDefault : // 阻止默认行为 stopPropagation : // 停止冒泡 });
示例1 延迟执行
click me
function f1(){alert('Delayed 5 seconds to execution');} E.on(d1,'click',f1, { delay : 5000 });
示例2 改变执行上下文
click me
function f2(){alert(this.name)} E.on(d2,'click',f2, { scope : {name:'jack'} });
示例3 handler仅执行一次
click me
function f2(){alert(this.name)} E.on(d3,'click',f3, { once : true });