给每个dom子节点去绑定事件,会有如下问题:
1、会因为过多的dom事件绑定影响性能
2、会造成再次生成的节点将无法响应事件
利用js中的事件委托以及事件代理就可以完美的解决这个问题,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 | window.onload = function () { var divs = document.getElementById('div') divs.onclick = function(ev) { var ev = ev || window.event var target = ev.target || ev.srcElement // 点击目标是p的时候才响应 if (target.nodeName.toLowerCase() === 'p') { alert(target.innerHTML) } } } |
7