jQuery事件多次綁定與解綁問題實例分析
本文實例分析了jQuery事件多次綁定與解綁問題。分享給大家供大家參考,具體如下:
jQuery事件綁定很常見,相信大家經(jīng)常會用到click、focus、blur等事件,但是如果對控件的某個事件綁定多個方法會是怎樣的結(jié)果呢,覆蓋、累加、或其他效果?今天我就來驗證一下這個疑問并說說如何解綁。
一、jQuery事件多次綁定
<head>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
//第二次綁定
$("#btnAdd").click(function () {
alert("bind click1");
});
//第三次綁定
$("#btnAdd").on("click", function () {
alert("bind click2");
});
//第四次綁定
$("#btnAdd").bind("click", function () {
alert("bind click3");
});
});
function add1() {
alert("add1()");
}
</script>
</head>
<body>
<h2>UserController->Index</h2>
<!--第一次綁定-->
<input type="button" id="btnAdd" name="btnAdd" value="Add" onclick="add1()" />
</body>
驗證結(jié)果:對控件的某個事件進(jìn)行多次綁定效果會疊加,截圖如下:

二、jQuery事件解綁
既然能綁定事件,那應(yīng)該也能對事件解綁,下面展示解綁的方法:
<head>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#btnAdd").click(function () {
alert("bind click1");
});
$("#btnAdd").on("click", add2);
$("#btnAdd").bind("click", add3);
});
function add1() {
alert("add1()");
}
function add2() {
alert("bind click2");
}
function add3() {
alert("bind click3");
}
function cancelBind() {
//不指定方法名則解綁click事件對應(yīng)的所有方法,標(biāo)簽內(nèi)onclick設(shè)置的方法仍會執(zhí)行
//$("#btnAdd").off("click");
//$("#btnAdd").unbind("click");
//解綁click事件對應(yīng)的add2方法
$("#btnAdd").off("click", add2);
//$("#btnAdd").unbind("click", add3);
}
</script>
</head>
<body>
<h2>UserController->CancelBind</h2>
<input type="button" id="btnAdd" name="btnAdd" value="Add" onclick="add1()" />
<input type="button" id="btnCancelBind" name="btnCancelBind" value="CancelBind" onclick="cancelBind()" />
</body>
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運(yùn)行效果。
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jQuery常見事件用法與技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jQuery操作json數(shù)據(jù)技巧匯總》、《jQuery擴(kuò)展技巧總結(jié)》、《jQuery常見經(jīng)典特效匯總》及《jquery選擇器用法總結(jié)》
希望本文所述對大家jQuery程序設(shè)計有所幫助。
相關(guān)文章
TimergliderJS 一個基于jQuery的時間軸插件
Timeglider JS是一個由javascript支持縮放,數(shù)據(jù)驅(qū)動的時間軸組件。非常適合顯示項目歷史,項目計劃及其其它需要顯示歷史的項目2011-12-12
jquery ajax結(jié)合thinkphp的getjson實現(xiàn)跨域的方法
這篇文章主要介紹了jquery ajax結(jié)合thinkphp的getjson實現(xiàn)跨域的方法,結(jié)合實例形式對比分析了jQuery ajax實現(xiàn)跨域的具體操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-06-06
Jquery知識點一 Jquery的ready和Dom的onload的區(qū)別
onload是所有dom元素創(chuàng)建完畢,圖片、css等都加在完畢后才觸發(fā) ready則是dom元素創(chuàng)建完畢后就被觸發(fā)2011-01-01

