一、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是可選的。