關(guān)于Jquery中的bind(),on()綁定事件方式總結(jié)
一.bind()
使用方式:$(selector).bind(event,data,function)
event:必需項(xiàng);添加到元素的一個(gè)或多個(gè)事件,例如 click,dblclick等;
單事件處理:例如 $(selector).bind("click",data,function);
多事件處理:1.利用空格分隔多事件,例如 $(selector).bind("click dbclick mouseout",data,function);
2.利用大括號(hào)靈活定義多事件,例如 $(selector).bind({event1:function, event2:function, ...})
3.空格相隔方式:綁定較為死板,不能給事件單獨(dú)綁定函數(shù),適合處理多個(gè)事件調(diào)用同一函數(shù)情況;
大括號(hào)替代方式:綁定較為靈活,可以給事件單獨(dú)綁定函數(shù);
data:可選;需要傳遞的參數(shù);
function:必需;當(dāng)綁定事件發(fā)生時(shí),需要執(zhí)行的函數(shù);
例子:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jquery中bind()綁定事件方式</title> <style type="text/css"> .container { width: 300px; height: 300px; border: 1px #ccc solid; background-color: Green; } .btn-test { border: 1px #ccc solid; padding: 5px 15px; cursor: pointer; } </style> <script src="js/jquery-1.8.0.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { /*********添加單個(gè)事件處理*********/ $(".btn-test").bind("click", function () { //顯示隱藏div $(".container").slideToggle(); }); /********添加多個(gè)事件處理********/ //空格相隔方式 $(".btn-test").bind("mouseout click", function () { //顯示隱藏div $(".container").slideToggle(); }); //大括號(hào)替代方式 $(".btn-test").bind({ "mouseout": function () { alert("這是mouseout事件!"); }, "click": function () { $(".container").slideToggle(); } }); /********刪除事件處理********/ $(".btn-test").unbind("click"); }); </script> </head> <body> <input type="button" value="按鈕" class="btn-test" /> <div class="container"> </div> </body> </html>
適用所有版本,但是根據(jù)官網(wǎng)解釋,自從jquery1.7版本以后bind()函數(shù)推薦用on()來代替。
二.ON():
簡(jiǎn)要描述
on() 為指定的元素,添加一個(gè)或多個(gè)事件處理程序,并規(guī)定當(dāng)這些事件發(fā)生時(shí)運(yùn)行的函數(shù)。使用 on() 方法的事件處理程序適用于當(dāng)前或未來的元素(比如由腳本創(chuàng)建的新元素)。
使用方式
$(selector).on(event,childselector,data,function)
event:必需項(xiàng);添加到元素的一個(gè)或多個(gè)事件,例如 click,dblclick等;
單事件處理:例如 $(selector).on("click",childselector,data,function);
多事件處理:
1.利用空格分隔多事件,例如 $(selector).on("click dbclick mouseout",childseletor,data,function);
2.利用大括號(hào)靈活定義多事件,例如 $(selector).on({event1:function, event2:function, ...},childselector);
3.空格相隔方式:綁定較為死板,不能給事件單獨(dú)綁定函數(shù),適合處理多個(gè)事件調(diào)用同一函數(shù)情況;
大括號(hào)替代方式:綁定較為靈活,可以給事件單獨(dú)綁定函數(shù);
childSelector: 可選;需要添加事件處理程序的元素,一般為selector的子元素;
data:可選;需要傳遞的參數(shù);
function:必需;當(dāng)綁定事件發(fā)生時(shí),需要執(zhí)行的函數(shù);
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jquery中on()綁定事件方式</title> <style type="text/css"> .container { width: 300px; height: 300px; border: 1px #ccc solid; background-color: Green; } .btn-test { border: 1px #ccc solid; padding: 5px 15px; cursor: pointer; } </style> <script src="js/jquery-1.8.0.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { /*********添加單個(gè)事件處理*********/ $(".header").on("click", ".btn-test", function () { //顯示隱藏div $(".container").slideToggle(); }); /********添加多個(gè)事件處理********/ //空格相隔方式 $(".header").on("mouseout click", ".btn-test", function () { //顯示隱藏div $(".container").slideToggle(); }); //大括號(hào)替代方式 $(".header").on({ "mouseout": function () { alert("這是mouseout事件!"); }, "click": function () { $(".container").slideToggle(); } }, ".btn-test"); //刪除事件 $(".header").off("click", ".btn-test"); }); </script> </head> <body> <div class="header"> <input type="button" value="按鈕" class="btn-test" /> </div> <div class="container"> </div> </body> </html>
適用Jquery版本
jquery1.7及其以上版本;jquery1.7版本出現(xiàn)之后用于替代bind(),live()綁定事件方式;
相同點(diǎn):
1.都支持單元素多事件的綁定;空格相隔方式或者大括號(hào)替代方式;
2.均是通過事件冒泡方式,將事件傳遞到document進(jìn)行事件的響應(yīng);
比較和聯(lián)系:
1.bind()函數(shù)只能針對(duì)已經(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()差些,想了解具體情況,請(qǐng)戳這:
4.bind()支持Jquery所有版本;live()支持jquery1.8-;delegate()支持jquery1.4.2+;on()支持jquery1.7+;
如果項(xiàng)目中引用jquery版本為低版本,推薦用delegate(),高版本jquery可以使用on()來代替,以上僅為個(gè)人看法,如有不同想法,歡迎拍磚交流。
以上就是小編為大家?guī)淼年P(guān)于Jquery中的bind(),on()綁定事件方式總結(jié)全部?jī)?nèi)容了,希望大家多多支持腳本之家~
- jQuery中對(duì)未來的元素綁定事件用bind、live or on
- jQuery綁定事件方法及區(qū)別(bind,click,on,live,one)
- jQuery中的on與bind綁定事件區(qū)別實(shí)例詳解
- jQuery中bind(),live(),delegate(),on()綁定事件方法實(shí)例詳解
- jQuery中綁定事件bind() on() live() one()的異同
- JQuery中綁定事件(bind())和移除事件(unbind())
- jQuery中的bind綁定事件與文本框改變事件的臨時(shí)解決方法
- jQuery綁定事件監(jiān)聽bind和移除事件監(jiān)聽unbind用法實(shí)例詳解
- Jquery綁定事件(bind和live的區(qū)別介紹)
- 淺談jquery之on()綁定事件和off()解除綁定事件
- jquery綁定事件 bind和on的用法與區(qū)別分析
相關(guān)文章
jQuery實(shí)現(xiàn)鼠標(biāo)拖動(dòng)div改變位置、大小的實(shí)踐
這篇文章主要介紹了jQuery實(shí)現(xiàn)鼠標(biāo)拖動(dòng)div改變位置、大小的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04六款幫助你實(shí)現(xiàn)驚艷視差滾動(dòng)效果的jQuery插件
視差(Parallax)是指從不同的點(diǎn)看一個(gè)物體時(shí)形成的視覺差異,這個(gè)名詞是源自希臘文的παράλλαξις (parallaxis),意思是改變2012-09-09jquery ui resize 中border-box的bug修正
本文給大家分享的是jQuery ui resize中的一個(gè)樣式的小bug的解決方法,官方并沒有修復(fù),這里推薦給大家,有需要的小伙伴可以參考下。2015-04-04jquery 鼠標(biāo)滑動(dòng)顯示詳情應(yīng)用示例
本文示例要為大家實(shí)現(xiàn)的效果是鼠標(biāo)滑動(dòng),顯示詳情,代碼很簡(jiǎn)潔,很適合學(xué)習(xí)2014-01-01jQuery實(shí)現(xiàn)防止提交按鈕被雙擊的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)防止提交按鈕被雙擊的方法,涉及jQuery針對(duì)鼠標(biāo)按鍵的操作技巧以及preventDefault方法對(duì)元素默認(rèn)行為的修改技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03