JavaScript必知必会(四)
使用事件委托降低重复的事件绑定
var ul = document.getElementsByTagName('ul')[0];
if(ul.addEventListener) {
ul.addEvenetListener('click', function(e) {
if(e.target.nodeName.toLowerCase() == 'li') {
console.log(e.target.innerText);
}
}, false) // 第三个参数为false表示在冒泡阶段触发,否则在捕获阶段触发
} else {
// 兼容IE浏览器,需要注意attachEvent、onclick、srcElement
ul.attachEvent('onclick', function(e) {
e = window.event || e;
var target = e.srcElement;
if(target.nodeName.toLowerCase() == 'li') {
console.log(target.innerText);
}
})
}JavaScript内存泄漏
意外的全局变量
被遗忘的计时器或回调函数
脱离DON节点的引用
闭包
自定义事件
实现发布-订阅者模式
使用apply实现bind方法
参考资料
Last updated