zoukankan      html  css  js  c++  java
  • JQ的live(),on(),deletage(),bind()几个的区别

      今天在网上看到一篇文章,关于JQ里面事件绑定的区别,说说我自己看后的理解,本人菜鸟一枚,很多东西不懂 ,有理解错误的还望大神们多多指教

    bind()方法是绑定事件最直接的方法,这个方法是绑定到document上存在最久的方法,也很好的解决了兼容性方面的问题;

    bind()方法的优点:1.很好的解决了各个浏览器的兼容性问题;

             2.非常方便简单的能进行事件的绑定;

              3.对于利用ID选出来的元素是非常好的,不仅仅是很快的可以hook上去(因为一个页面只有一个id),而且当事件发生时,handler可以立即被执行实现方式;

    bind()方法的缺点:1.bind()不会绑定在通过bind()添加的元素上面;

              2.他会绑定到所有选出来的元素上面;

              3.只有当页面加载完成后才会执行bind()事件,可能会产生效率问题;

    live()这个绑定方法是通过冒泡机制来进行绑定的,由于在JQ1.7以上已经不推荐使用,在此不进行说明了;

    deletage()这个方法在此之前从来没有用过,看过万丈后才知道还有这么一个绑定事件的方法;

      deletage()这个方法的有点像live()方法,但不同于live()方法的地方在于他不会将event绑定到所有的ducoment上面,而是由你决定将他绑定在什么上面;

        deletage()的优点:1.支持绑定到动态添加的元素上面

                  2.你可以选择把那个那个事件放到你指定的元素上面;

        deletage()的缺点:1.尽管减少了decoment已经很少了,但是还是需要来查找那个元素上面绑定了那个事件。需要花一定的时间。

    on():其实bind(),live(),delegate()都可以用on()方法来代替;就像undind();die()和undeletage()一样可以用off()来实现一样;

      on()的优点:1.提供了一种统一的绑定事件的机制。

      on()的缺点:1.隐藏了一些前面方法的细节。

    总结:用bind()的代价是非常大的,他会把所有的时间绑定到DOM上面;

      live()zai JQ1.7上面已经不被推荐使用了;

      deletage()可以在动态元素上添加绑定事件;

      on()结合了前面3种方法,为绑定事件有个统一。但是ON()不支持绑定动态添加的元素

  • 相关阅读:
    工作两周年—项目研发总结(201105201305)
    Java时间日期格式转换Date转String和String转Date
    Comm100 Email Marketing API学习小结
    outlook错配置账户到exchange后的删除办法
    excel自动调整行高和设置默认行高
    关于通过vmware安装windows8的几个问题及解决无人参与应答文件包含的产品密钥无效
    如何查看各个邮件客户端的邮件标头
    服务网格和Istio初识
    solidity开发2合约结构
    DDraw笔记一个简单的DDraw应用程序
  • 原文地址:https://www.cnblogs.com/chenxilin/p/4424488.html
Copyright © 2011-2022 走看看