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;
});

最新文章

  1. Java实现列出目录下所有文件和文件夹
  2. bind_module和DEFAULT_MODULE
  3. 关于安装Visual Studio 2015 RC版卡主不动的解决方案
  4. An exception occurred during a WebClient request
  5. as关键词还有另外一个用途,那就是修改 方法 的访问控制
  6. RocketMQ学习记录
  7. [iOS微博项目 - 3.0] - 手动刷新微博
  8. noip2006提高组题解
  9. 阿里云slb http https配置
  10. jetbrains
  11. hdoj 3746 Cyclic Nacklace【KMP求在结尾加上多少个字符可以使字符串至少有两次循环】
  12. python3 解析apk图标
  13. iOS 网络与多线程--8.百度地图的使用(调用系统浏览器)
  14. LINUX文件定位
  15. Nginx的负载均衡 - 保持会话 (ip_hash)
  16. linux内核添加模块
  17. 【TensorFlow】tf.nn.max_pool实现池化操作
  18. 使用apache设置绑定多个域名或网站
  19. uart boot log
  20. centos下配置gitosis服务器

热门文章

  1. #pg学习#postgresql的安装
  2. Java并发编程基础--基本线程方法详解
  3. Codeforces CF#628 Education 8 D. Magic Numbers
  4. 【转】iOS学习之translucent属性
  5. 深入理解JavaScript运行机制
  6. iMetro
  7. ubuntu server 搭建自己的个人博客及其他网站
  8. 【Beta】Daily Scrum Meeting第七次
  9. python使用总结
  10. Linux_10个需要了解的Linux网络和监控命令(转)