談?wù)搄query中bind(),live(),delegate(),on()綁定事件方式
1. Bind()
$(selector).bind(event,data,function)
Event:必須項(xiàng);添加到元素的一個或多個事件。
Data:可選;需要傳遞的參數(shù)
Function:必需;當(dāng)綁定事件發(fā)生時,需要執(zhí)行的函數(shù);
定義事件:
$(selector).bind({event1:function, event2:function, ...});
2.live()
$(selector).live(event,data,function)
Event:必須項(xiàng);添加到元素的一個或多個事件
Data:可選;需要傳遞的參數(shù)
Function:必需;當(dāng)綁定事件發(fā)生時,需要執(zhí)行的函數(shù);
定義事件:
$(selector).live({event1:function, event2:function, ...})
3.delegate()
$(selector).delegate(childSelector,event,data,function)
childSelector:必須項(xiàng);需要添加事件處理程序的元素,一般為selector的子元素;
event:必須項(xiàng);添加到元素的一個或多個事件
Data:可選;需要傳遞的參數(shù)
Function:必需;當(dāng)綁定事件發(fā)生時,需要執(zhí)行的函數(shù);
定義事件:
$(selector).delegate(childselector,{event1:function, event2:function, ...})
4.on()
$(selector).on(event,childselector,data,function)
childSelector:必須項(xiàng);需要添加事件處理程序的元素,一般為selector的子元素;
event:必須項(xiàng);添加到元素的一個或多個事件
Data:可選;需要傳遞的參數(shù)
Function:必需;當(dāng)綁定事件發(fā)生時,需要執(zhí)行的函數(shù);
定義事件:
$(selector).on({event1:function, event2:function, ...},childselector);
四種方式的異同和優(yōu)缺點(diǎn)
相同點(diǎn):
1.都支持單元多事件的綁定;空格相隔方式或者是大括號替代方式;
2.均是通過事件方式,將事件傳遞到document進(jìn)行事件的響應(yīng);
比較:
1.bind()函數(shù)只能針對已經(jīng)存在的元素進(jìn)行事件的設(shè)置;但是live(),on(),delegate(),均支持未來新添加元素的事件設(shè)置;
2.bind()函數(shù)在jquery1.7版本以前比較受推崇,1.7版本出來之后,官方已經(jīng)不推薦用bind(),替代函數(shù)為on(),這也是1.7版本新添加的函數(shù),同樣,可以用來代替live()函數(shù),live()函數(shù)在1.9版本已經(jīng)刪除;
3.live()函數(shù)和delegate()函數(shù)兩者類似,但是live()函數(shù)在執(zhí)行速度,靈活性和CSS選擇器支持方面較delegate()差些。
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持武林網(wǎng)!
新聞熱點(diǎn)
疑難解答