jquery 1.7以后建议绑定事件用 .on( ),移除事件处理函数用 .off( )jquery
$(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),那么它的全部父元素,祖宗元素都会受之影响;spa
(2) .live( )——1.7版本已删除code
将委托的事件处理程序附加到一个页面的 document 元素而不是像 .bind( ) 给全部的元素挨个绑定;对象
那些动态添加的元素依然能够触发那些早先绑定的事件,由于事件真正的绑定是在document上;blog
旧版本的jQuery中用户,应优先使用 .delegate( )来取代 .live( )。事件
(3) .delegate( )rem
当使用 delegate 时,该元素能够是将来才存在的。io
delegate是将事件注册到已经存在的document,当发生click事件时,只须要匹配#objId是否跟触发的对象一致,一致即执行函数。
(4) .on( )
.on( )是最新的1.9版本整合了以前的三种方式的新事件绑定机制。
对于一些属性,有的浏览器只要写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()的使用:
(1) .remove( )
用remove()删除节点后,此节点以及全部后代节点同时删除。该方法返回值是一个指向已被删除的节点。
除了这个元素自己得以保留以外,其余的好比绑定的事件,附加的数据等都会被移除。
(2) .detach( )
与remove()的区别是仍然保留其绑定的数据。
(3) .empty( )
清空元素内的全部后代元素。