在实现计算器的时候用到了事件代理,但是遇到很多问题,发现代理很不方便
1.在112行mian代理了18个button, 绑定事件,代理有没有必要。能节约很多性能吗?
2.代理怎么屏蔽某个元素。比如在115行点击c清屏,通过代理刷新了str,但是这不是
我想要的效果,我实际是想要122行的效果,怎么从18个button点击事件里面屏蔽掉它
3.我这里112行取巧用的捕获,从事件顺序上达到了目的,但是遇到其他情况不一定适用,有没有比较稳定通用的办法。
呃,再问一个,18个button和ul li 有什么区别没有,推荐哪种
li相对button 代码量小点,推荐li
代理代码量少,但是需要注意判断target是哪个对象,你的代码有bug,要是点击不是按钮而是omain你内容就全部乱套了
omain.addEventListener('click',function(e){
var o=e.target;
if(o.tagName!='BUTTON')return;//非button退出
if(o.innerText=='C'){
//C的代码
return
}
//..........其他
})