支持阻止事件冒泡的点击事件委托
BSD 3-Clause License
安装npm i proxyclickevent 使用方式 script标签引入
<div class="a" clickFn="fna"> <div class="b" clickFn="fnb"> <div class="e" clickFn="fne">点击<b>捣蛋鬼E</b>,会执行 <B>e,b,a</B>函数 </div> <div class="c" clickFn="fnc">点击<b>捣蛋鬼C,stop</b>,执行执行<b>c</b>函数</div> <div class="f" clickFn="fnf">点击<b>捣蛋鬼F</b>,会执行<b>f,b,a</b>函数</div> </div> </div> <script src="yourPath/ProxyClickEvent.js"></script>
var funs = { fna: function() { console.log("点击a") }, fnb: function() { console.log("点击b") }, fnc: function(e) { //阻止事件冒泡 e.__stop = true; console.log("点击c") }, fnd: function() { console.log("点击d") }, fne: function() { console.log("点击e") }, fnf: function() { console.log("点击f") } } let proxyEvent = new window.ProxyClickEvent(); //如果出现父子标签关系有变化时候,必须clear后重新扫描dom,重新add proxyEvent.clear(); let clickDoms = document.querySelectorAll("[clickFn]"); for (let i = 0; i < clickDoms.length; i++) { let dom = clickDoms[i]; let fnStr = clickDoms[i].getAttribute("clickFn"); proxyEvent.add(dom, funs[fnStr]) } es6的方式
import ProxyClickEvent from "proxyclickevent" 方法
name | desc |
---|---|
new ProxyClickEvent | 接受一个代理点击的dom对象,如果不填写默认是document.body |
add | 接受2个参数,一个是dom,一个是对应的函数,目前不支持同一个dom被add多次,如果重复直接警告,拒绝本次add |
remove | 接受2个参数,一个是dom,一个是对应的函数 |
clear | 清空内部数组 |
destroy | 销毁document的点击事件,已经数组和检测dom是否存在的定时器,组件销毁前一定要执行它 |
__stop
并赋值为true即可
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。