一、bindjquery
使用语法:函数
1 jQueryObject.bind( events [, data ], handler ) 2 jQueryObject.bind( events [, data ] [, isDefaultBubble ] ) 3 jQueryObject.bind( eventsMap )
ps:执行bind()
时,会为当时文档中存在的每一个匹配的元素绑定事件,若是以后你向文档中添加了新的与bind()绑定的元素相同的元素,绑定事件不会对其生效。若是你但愿绑定事件对将来新添加的元素也生效,请使用on()、delegate()、live()等事件函数(尽可能优先使用靠前的事件函数)。this
二、onspa
使用语法:code
1 jQueryObject.on( events [, selector ] [, data ], handler ) 2 jQueryObject.on( eventsMap [, selector ] [, data ] )
从jQuery 1.7开始,on()
函数提供了绑定事件处理程序所需的全部功能,用于统一取代之前的bind()、 delegate()、 live()等事件函数。htm
关于参数selector
,你能够简单地理解为:若是该参数等于null
或被省略,则为当前匹配元素绑定事件;不然就是为当前匹配元素的后代元素中符合selector
选择器的元素绑定事件。参数handler
中的this
指向当前匹配元素的后代元素中触发该事件的DOM元素。若是参数selector
等于null
或被省略,则this
指向当前匹配元素(也就是该元素)。对象
ps:若是传递了selector
参数,那么on()
函数并非为当前jQuery对象匹配的元素绑定事件处理函数,而是为它们的后代元素中符合选择器selector
参数的元素绑定事件处理函数。on()
函数并非直接为这些后代元素挨个绑定事件,而是委托给当前jQuery对象的匹配元素来处理。因为DOM 2级的事件流机制,当后代元素selector
触发事件时,该事件会在事件冒泡中传递给其全部的祖辈元素,当事件流传递到当前匹配元素时,jQuery会判断是哪一个后代元素触发了事件,若是该元素符合选择器selector
,jQuery就会捕获该事件,从而执行绑定的事件处理函数。blog
三、delegate事件
使用语法:文档
jQueryObject.delegate( selector , events [, data ], handler )
jQueryObject.delegate( selector, eventsMap )
ps:参数的意义和on方式同样,二者区别是seleter和events顺序不一样,delegate的selector是必需的,on的selector是可选的。