• JQuery 备忘


    一、.on()  .bind()  .delegate()  .live()的区别

      jquery 1.7之后建议绑定事件用 .on( ),移除事件处理函数用 .off( )

    $(selector).bind(event,data,function); 
    $(selector).live(event,data,function); //jquery1.9版本以下支持,jquery1.9及其以上版本删除了此方法
    $(selector).delegate(childSelector,event,data,function)//jquery1.4.2及其以上版本;1.7版本之后被 .on()替代 $(selector).on(event,childselector,data,function); //jquery1.7及其以上版本;jquery1.7版本出现之后用于替代上述三种绑定事件方式;

    (1) .bind( ) 

      .bind( )是直接绑定在元素上,而且当使用 bind 时,该元素必须是已经存在的。

      如果不人为的设置stopPropagation(Moder Browser), cancelBubble(IE),那么它的所有父元素,祖宗元素都会受之影响;

    (2) .live( )——1.7版本已删除

      将委托的事件处理程序附加到一个页面的 document 元素而不是像 .bind( ) 给所有的元素挨个绑定;

      那些动态添加的元素依然可以触发那些早先绑定的事件,因为事件真正的绑定是在document上;

       旧版本的jQuery中用户,应优先使用 .delegate( )来取代 .live( )。

    (3) .delegate( )

      当使用 delegate 时,该元素可以是未来才存在的。

      delegate是将事件注册到已经存在的document,当发生click事件时,只需要匹配#objId是否跟触发的对象一致,一致即执行函数。

    (4) .on( )

      .on( )是最新的1.9版本整合了之前的三种方式的新事件绑定机制。

    二、.attr( ) 和 .prop( )的区别

      对于一些属性,有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked",比如用attr("checked")获取checkbox的checked属性时选中的时候可以取到值"checked",但没选中获取值就是undefined。

      jq提供新的方法“prop”来获取这些属性,就是来解决这个问题的,使用prop方法获取checked属性则统一返回true和false。

      那么,什么时候使用attr(),什么时候使用prop()?
        1.添加属性名称该属性就会生效应该使用prop();
        2.是有true,false两个属性使用prop();
        3.其他则使用attr();

      官方建议attr(),prop()的使用:

    三、.remove( )  .detach( )  .empty( )的区别

    (1) .remove( )

      用remove()删除节点后,此节点以及所有后代节点同时删除。该方法返回值是一个指向已被删除的节点。

      除了这个元素本身得以保留之外,其他的比如绑定的事件,附加的数据等都会被移除。

    (2) .detach( )

      与remove()的区别是仍然保留其绑定的数据。

    (3) .empty( )

      清空元素内的所有后代元素。

  • 相关阅读:
    56.字符流中第一个不重复的数
    55.表示数值的字符串
    54.正则表达式匹配
    53.构建乘积数组
    52.数组中重复的数字
    51.把字符串转化为整数
    50.不用加减乘除求和
    49.求1+2+3+.......+n
    The great pleasure in life is doing what people say you cannot do.
    mkcert本地 HTTPS 加密证书生成工具
  • 原文地址:https://www.cnblogs.com/cjlalala/p/6979977.html
Copyright © 2020-2023  润新知