addEvent和removeEvent优化写法
Posted 黑客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了addEvent和removeEvent优化写法相关的知识,希望对你有一定的参考价值。
;(function(){ /** * 初始化分支是一种优化模式,当知道某个条件在整个生命周期内都不会发生变化时,仅对该条件测试一次。 */ // 一般写法 var util = { addEvent: function(el, type, fn) { if(window.addEventListener{ el.addEventListener(type, fn, false) }else if(document.attachEvent) { el.attachEvent(‘on‘ + type, fn); }else{ el[‘on‘ + type] = fn; } }, removeEvent: function() { // 类似addEvent } } // 优化写法。先定义接口,再实现借口,达到了只需验证一次的目的 var util = { addEvent: null, removeEvent: null }; if(window.addEventListener) { util.addEvent = function(el, type, fn) { el.addEventListener(type, fn, false) }; util.removeEvent = function(el, type, fn) { el.removeEventListener(type, fn, false) } } else if(document.attachEvent) { util.addEvent = function(el, type, fn) { el.attachEvent(‘on‘ + type, fn) }; util.removeEvent = function(el, type, fn) { el.detachEvent(‘on‘ + type, fn) } } else { util.addEvent = function(el, type, fn) { el[‘on‘ + type] = fn; }; util.removeEvent = function(el, type, fn) { el[‘on‘ + type] = null; } } }());
以上是关于addEvent和removeEvent优化写法的主要内容,如果未能解决你的问题,请参考以下文章
itemStateChanged中的removeEvent ItemListener(removeItemListener)不起作用(StackOverfowError)
EKEventStore removeEvent EKErrorDomain 代码=11 EKErrorObjectBelongsToDifferentStore