varhtml=document.documentElement;varbody=document.body;vardiv=body.querySelector('div');varul=body.querySelector('ul');varli=body.querySelector('li');varpause=300;//Capturehtml.addEventListener('click',callback,true);body.addEventListener('click',callback,true);div.addEventListener('click',callback,true);ul.addEventListener('click',callback,true);li.addEventListener('click',callback,true);//Bubblehtml.addEventListener('click',callback,false);body.addEventListener('click',callback,false);div.addEventListener('click',callback,false);ul.addEventListener('click',callback,false);li.addEventListener('click',callback,false);functioncallback(event){varms=event.timeout=(event.timeout+pause)||0;vartarget=event.currentTarget;setTimeout(function(){target.classList.toggle('highlight')//target.classList.add('highlight');setTimeout(function(){target.classList.remove('highlight');},pause);},ms);}今天看到一个例子,感觉上面的例子上有很多代码重复的不知道如何优化,希望解答,我想通过['html','body','div','ul','li'].forEach(function(value,index,arr){console.log(typeofvalue)value.addEventListener('click',callback,false)})开始我想以这种方式优化,想想类型不对,但没想到这种的怎么处理,希望看到的人并且会的人能够指导一下十分感谢
2 回答

互换的青春
TA贡献1797条经验 获得超6个赞
你写的那种也是一种,还有一种比较笨的方法,获取页面所有元素,寻找nodetype为1的元素,循环绑定绑定事件。$.each($('*'),function(i,v){//伪代码if(v.nodeType===1){绑定事件...}})...
添加回答
举报
0/150
提交
取消