JavaScript一个通用于代理和不代理的绑定事件函数
来源:互联网 发布:java设计模式视频教程 编辑:程序博客网 时间:2024/05/29 03:47
这篇文章主要关于js一个通用的绑定事件函数。绑定事件在我们开发的过程中会经常用到。写一个通用的函数是很必要的。
这里先讲一下代理。如一下代码,ul中有很多个li,而且li还有可能增加。如果要为每个li添加一个点击事件,操作起来将比较麻烦,代码量大不简洁,占内存。这时可以将事件代理到ul上,当点击li时,由于事件冒泡,ul上也起作用,之后再判断是点击那个li即可。
<ul id="uid"> <li id="id1">id1</li> <li id="id2">id2</li> <li id="id3">id3</li> <li id="id4">id4</li> <li id="id5">id5</li> ...</ul>
这里也可以提一下,事件的代理的好处是:代码简洁和减少浏览器内存占用。
说完了事件代理,下面来到本文章的重点,通用绑定事件函数。废话不多说,直接上代码。
/** * 一个通用代理和不代理的绑定事件函数 * @param {[type]} elme [要绑定事件元素] * @param {[type]} type [事件类型] * @param {Function} fn [处理函数] * @param {[type]} selector [可选参数,要代理事件的元素] * @return {[type]} [无] */ function bindEvent(elme, type, fn, selector){ elme.addEventListener(type, function(e){ var target; if(selector){//使用代理 target = e.target;//获取触发事件的元素 if(target.mathchs(selector)){ fn.call(target,e); } }else{ fn(e); } }); }
函数比较简单,就不多解释。下面运用这个通用函数,写两个例子。
//使用代理,为每一个li将点击事件代理在父级元素ul上 var ul = document.getElementById('uid'); bindEvent(ul, 'click', function(e){ console.log(this.innerHTML); },'li'); //不使用代理 var l1 = document.getElementById('id1'); bindEvent(l1, 'click', function(e){ console.log(l1.innerHTML); });
这篇文章就到这了,记录学习心得,如有错误,恳请指正!
阅读全文
0 0
- JavaScript一个通用于代理和不代理的绑定事件函数
- JavaScript的事件代理
- JavaScript的事件代理
- JavaScript的事件代理
- JavaScript的事件代理
- javascript的事件代理
- JavaScript的事件代理
- JavaScript的事件代理
- JavaScript的事件代理
- JavaScript事件代理和委托
- JavaScript事件代理和委托
- JavaScript中绑定事件监听函数的通用方法[ addEvent() ]
- iOS 通用代理的写法 一个代理添加多个执行函数
- javascript事件代理javascript
- 事件绑定,事件冒泡和事件代理详解
- javascript中通用的绑定事件代码
- js事件绑定,事件流,事件代理的一些理解
- javascript写的代理函数
- 多线程访问静态方法中的静态变量
- VMware虚拟机NAT模式网络配置图文教程
- Linux基本操作指令
- 通过 raft 的 leader lease 来解决集群脑裂时的 stale read 问题
- [BZOJ2006][NOI2010]超级钢琴-ST表+堆
- JavaScript一个通用于代理和不代理的绑定事件函数
- 二元关系的矩阵和图表示
- 利用vs 2017 编写 C++程序常用调试工具快捷键
- JS中的事件监听
- 串口给STM32阿波罗开发板下载程序
- 线程池的原理及实现
- shell实现贪吃蛇
- [华为]16进制转换成10进制
- Gradle构建之Gradle构建基础