实现一个js事件代理的模块,帮助用户快速实现事件代理。
function Proxy(agent, judgeFn, cb){
agent['onclick'] = function(evt){
var node = evt.target
function helper(node){
if(node === agent){
return
}
if(judgeFn(node)){
cb(node)
evt.stopPropagation()
}
helper(node.parentNode)
}
helper(node)
}
}
Proxy(ul, function(node){
return node.tagName === "LI"
}, function(node){
console.log(node.id)
})