JavaScript 事件代理绑定
2016-07-12 17:34
555 查看
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <style> .out li{line-height: 25px;width: 200px; padding: 5px; border: 1px solid #ccc; margin: 10px; cursor: pointer;} </style> <ul class="out"> <li>列表01</li> <li>列表02</li> <li>列表03</li> <li>列表04</li> <li>列表05</li> <li>列表06</li> <li>列表07</li> </ul> <script> function bindEvent(dom,event,listeners){ addEvent(dom,event,function(e){ var e=e||window.event, src= e.target|| e.srcElement,returnVar; while(src || src!=dom){ returnVar=listeners({ e:e, src:src }); if(returnVar===false){ break; } } }) } function addEvent(obj,type,handle){ function createDelegate(handle,context){ return function(){ handle.apply(context,arguments); } } //兼容浏览器 if(obj.addEventListener){ var handler=createDelegate(handle,obj); obj.addEventListener(type,handler,false); }else if(obj.attach){ var handler=createDelegate(handle,obj); obj.attach('on'+type,handler); } } var ls={}; var ulDom=document.querySelector('.out'); bindEvent(ulDom,'click',function(opts){ console.log(opts.src.innerHTML); return false; }); </script> </body> </html>
相关文章推荐
- javascript 学习基础
- javascript介绍、变量、运算符-1
- qrcode.js插件将你的内容转换成二维码格式
- js概念理解
- js 中对象--属性相关操作
- **JAVASCRIPT** 浏览器对象
- JS判断flash加载完成
- 理解JSON:3分钟课程
- Javascript高级程序设计 -- 第三章 -- 总结
- Js bind\live\delegate\on 事件绑定方式
- javascript作用域和作用域链
- <a>标签跳转和执行js函数,href和onclick属性
- JS-正则表达式2
- javascript闭包实例
- 五句话搞定JavaScript作用域
- 个人qq、营销qq加入页面内
- JavaScript导航脚本判断当前导航
- js和zclip实现复制内容到剪贴板效果
- javascript基础:表单处理2
- 输入框内只能输入数字,输入其他内容不显示