jquery中on/delegate的原理
2024-08-25 00:43:20
jquery中on/delegate的原理
早期版本中叫delegate, 后来有过live函数,再后来统一用on。下面的方法等效:
// jQuery 1.3
$(selector).(events, data, handler);
// jQuery 1.4.3+
$(elements).delegate(selector, events, data, handler);
// jQuery 1.7+ live过时 旧版本的jQuery中用户,应优先使用.delegate()来取代.live()
$(elements).on(events, selector, data, handler);
代理的好处就是动态添加的元素,之前之前绑定的事件依然有效,直接使用bind是无法在这种情况下生效的。
代理事件其实就是利用了事件冒泡机制,给父元素绑定事件,在handler中判断target是否是期望的目标元素,然后做相应的处理。
$(document).bind('click', function(e) {
var ev = e || event;
var target = $(ev.target || ev.srcElement);
if (target.hasClass('btn')) {
console.log('xxxx: ','you clicked btn');
return false;
}
return true;
});
最新文章
- Java实现列出目录下所有文件和文件夹
- bind_module和DEFAULT_MODULE
- 关于安装Visual Studio 2015 RC版卡主不动的解决方案
- An exception occurred during a WebClient request
- as关键词还有另外一个用途,那就是修改 方法 的访问控制
- RocketMQ学习记录
- [iOS微博项目 - 3.0] - 手动刷新微博
- noip2006提高组题解
- 阿里云slb http https配置
- jetbrains
- hdoj 3746 Cyclic Nacklace【KMP求在结尾加上多少个字符可以使字符串至少有两次循环】
- python3 解析apk图标
- iOS 网络与多线程--8.百度地图的使用(调用系统浏览器)
- LINUX文件定位
- Nginx的负载均衡 - 保持会话 (ip_hash)
- linux内核添加模块
- 【TensorFlow】tf.nn.max_pool实现池化操作
- 使用apache设置绑定多个域名或网站
- uart boot log
- centos下配置gitosis服务器