關(guān)于Jquery中的bind(),on()綁定事件方式總結(jié)
一.bind()
使用方式:$(selector).bind(event,data,function)
event:必需項;添加到元素的一個或多個事件,例如 click,dblclick等;
單事件處理:例如 $(selector).bind("click",data,function);
多事件處理:1.利用空格分隔多事件,例如 $(selector).bind("click dbclick mouseout",data,function);
2.利用大括號靈活定義多事件,例如 $(selector).bind({event1:function, event2:function, ...})
3.空格相隔方式:綁定較為死板,不能給事件單獨綁定函數(shù),適合處理多個事件調(diào)用同一函數(shù)情況;
大括號替代方式:綁定較為靈活,可以給事件單獨綁定函數(shù);
data:可選;需要傳遞的參數(shù);
function:必需;當綁定事件發(fā)生時,需要執(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 () {
/*********添加單個事件處理*********/
$(".btn-test").bind("click", function () {
//顯示隱藏div
$(".container").slideToggle();
});
/********添加多個事件處理********/
//空格相隔方式
$(".btn-test").bind("mouseout click", function () {
//顯示隱藏div
$(".container").slideToggle();
});
//大括號替代方式
$(".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():
簡要描述
on() 為指定的元素,添加一個或多個事件處理程序,并規(guī)定當這些事件發(fā)生時運行的函數(shù)。使用 on() 方法的事件處理程序適用于當前或未來的元素(比如由腳本創(chuàng)建的新元素)。
使用方式
$(selector).on(event,childselector,data,function)
event:必需項;添加到元素的一個或多個事件,例如 click,dblclick等;
單事件處理:例如 $(selector).on("click",childselector,data,function);
多事件處理:
1.利用空格分隔多事件,例如 $(selector).on("click dbclick mouseout",childseletor,data,function);
2.利用大括號靈活定義多事件,例如 $(selector).on({event1:function, event2:function, ...},childselector);
3.空格相隔方式:綁定較為死板,不能給事件單獨綁定函數(shù),適合處理多個事件調(diào)用同一函數(shù)情況;
大括號替代方式:綁定較為靈活,可以給事件單獨綁定函數(shù);
childSelector: 可選;需要添加事件處理程序的元素,一般為selector的子元素;
data:可選;需要傳遞的參數(shù);
function:必需;當綁定事件發(fā)生時,需要執(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 () {
/*********添加單個事件處理*********/
$(".header").on("click", ".btn-test", function () {
//顯示隱藏div
$(".container").slideToggle();
});
/********添加多個事件處理********/
//空格相隔方式
$(".header").on("mouseout click", ".btn-test", function () {
//顯示隱藏div
$(".container").slideToggle();
});
//大括號替代方式
$(".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()綁定事件方式;
相同點:
1.都支持單元素多事件的綁定;空格相隔方式或者大括號替代方式;
2.均是通過事件冒泡方式,將事件傳遞到document進行事件的響應(yīng);
比較和聯(lián)系:
1.bind()函數(shù)只能針對已經(jīng)存在的元素進行事件的設(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()差些,想了解具體情況,請戳這:
4.bind()支持Jquery所有版本;live()支持jquery1.8-;delegate()支持jquery1.4.2+;on()支持jquery1.7+;
如果項目中引用jquery版本為低版本,推薦用delegate(),高版本jquery可以使用on()來代替,以上僅為個人看法,如有不同想法,歡迎拍磚交流。
以上就是小編為大家?guī)淼年P(guān)于Jquery中的bind(),on()綁定事件方式總結(jié)全部內(nèi)容了,希望大家多多支持腳本之家~
- jQuery中對未來的元素綁定事件用bind、live or on
- jQuery綁定事件方法及區(qū)別(bind,click,on,live,one)
- jQuery中的on與bind綁定事件區(qū)別實例詳解
- jQuery中bind(),live(),delegate(),on()綁定事件方法實例詳解
- jQuery中綁定事件bind() on() live() one()的異同
- JQuery中綁定事件(bind())和移除事件(unbind())
- jQuery中的bind綁定事件與文本框改變事件的臨時解決方法
- jQuery綁定事件監(jiān)聽bind和移除事件監(jiān)聽unbind用法實例詳解
- Jquery綁定事件(bind和live的區(qū)別介紹)
- 淺談jquery之on()綁定事件和off()解除綁定事件
- jquery綁定事件 bind和on的用法與區(qū)別分析
相關(guān)文章
jQuery 淡出一個圖像到另一個圖像的實現(xiàn)代碼
這篇文章主要介紹了jquery的hover事件實現(xiàn)兩個圖片的淡出切換效果,需要的朋友可以參考下2013-06-06
jQuery實現(xiàn)中獎播報功能(讓文本滾動起來) 簡單設(shè)置數(shù)值即可
這篇文章主要介紹了jQuery實現(xiàn)中獎播報功能(讓文本滾動起來) 簡單設(shè)置數(shù)值即可,文中通過實例代碼給大家詳細介紹,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
jquery checkbox 勾選的bug問題解決方案與分析
本文首先由一個在項目中遇到的jquery checkbox 勾選的bug的解決方案,引申出jQuery中attr()和prop()的差異分析,非常的實用,需要的小伙伴快來研究下吧2014-11-11

