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( )

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

时间: 2024-10-11 22:40:21

JQuery 备忘的相关文章

一篇 jQuery 常用方法及函数的文章留存备忘。

jQuery 常见操作实现方式 $("标签名") //取html元素 document.getElementsByTagName("") $("#ID") //取单个控件document.getElementById("") $("div #ID") //取某个控件中 控件 $("#ID #ID") // 通过控件ID取其中的控件 $("标签.class样式名") /

Javascript备忘模式

使用备忘模式,利用了函数的自定义属性,先看一个例子 var test = function (){} test.myAttr = "attr"; 这样,就给test加上了一个自定义的属性,myAttr. 备忘模式,正式利用了这个方法,将已经运行过的结果存储起来,将函数接受到的参数作为key,将函数运行的结果作为value返回即可.代码如下 var myFunc = function (param) { if(!myFunc.cache[param]){ var result = {};

JqGrid相关操作备忘 方法列表

JqGrid相关操作备忘 方法列表 1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(json):$("#gridid").jqGrid('getRowData', id); 3.刷新列表:$(refreshSelector).jqGrid('setGridParam', { url: ''), postData: ''}).trigger('reloadGrid'); 4.选

AngularJS之备忘与诀窍

译自:<angularjs> 备忘与诀窍 目前为止,之前的章节已经覆盖了Angular所有功能结构中的大多数,包括指令,服务,控制器,资源以及其它内容.但是我们知道有时候仅仅阅读是不够的.有时候,我们并不在乎那些功能机制是如果运行的,我们仅仅想知道如何用AngularJS去做实现一个具体功能. 在这一章中,我么视图给出完整的样例代码,并且对这些样例代码仅仅给出少量的信息和解释,这些代码解决是我们在大多数Web应用中碰到的通用问题.这些代码没有具体的先后次序,你尽可以跳到你关心的小节先睹为快或者

RxJava & RxAndroid备忘

"你问我要去向何方,我指着大海的方向" 今天在刷G+的时候看到Dave Smith推荐了一个视频 <Learning RxJava (for Android) by example> 点进去看了一下,原来是位熟悉的"阿三哥",视频封面如下:(没有歧视的意思,不要喷我啊~,为什么感到熟悉?接着往下看) 几乎同时也看到了JetBrains在G+也推荐了篇在Medium上的博文 <RxAndroid And Kotlin (Part 1)> ,然后

工作备忘:cacti&nagios登录密码修改方法

[[email protected]]# mysql -u root -p mysql> use cacti; mysql> select * from user_auth; mysql> update user_auth set password=md5("cactipasswd") where id='1'; 现在cacti登录的新密码就是cactipasswd [[email protected]]# /usr/bin/htpasswd /usr/local/n

备忘-linux文件系统结构

用apache的时候总是要进入/var/www, 用久了开始好奇这些个目录都是派什么用处的,简单整理了一下 /bin 存放二进制命令文件,这个目录下面不允许存在子目录/boot bootloader的静态文件,当然OS的文件也必须在这里/dev 设备文件,MAKEDEV命令可以创建设备/etc 特定主机的配置文件,必须是静态文件,非可执行文件: opt, X11, sgml, xml/home 用户目录 /lib 存放主要的共享库和核心模块/media 可移除媒体的挂载点: floppy, cd

[转]Windows环境下尝试安装并配置PHP PEAR备忘

转自:http://wangye.org/blog/archives/266/ 什么是PEAR 来自百度百科:PEAR 是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写.它是一个PHP扩展及应用的一个代码仓库,简单地说,PEAR之于PHP就像是CPAN(Comprehensive Perl Archive Network)之于Perl. 由此可见PEAR是PHP代码的仓库,在这里可以找到很多有用的代码,避免我们重复写一些功能,

Table view 备忘

Table view 备忘 本篇会以备忘为主,主要是一些基础的代理方法和数据源方法具体的优化好点子会后续跟上. Table view的数据源方法 必须实现的数据源方法 // 返回每一行的cell,可以做缓存处理,同样也可能会造成复用问题. func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { // tableview 和 cell 都是在s