unbind解綁
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>title</title>
<style>
div {
width: 300px;
height: 200px;
background-color: green;
}
p {
width: 100px;
height: 30px;
background-color: red;
cursor: pointer;
}
</style>
<script src="jquery-1.12.1.js"></script>
<script>
$(function () {
//用什么方式綁定事件,最好用對(duì)應(yīng)的方式解綁事件
//bind括號(hào)中寫什么事件的名字就會(huì)把這個(gè)事件解綁,會(huì)把這個(gè)元素的這個(gè)點(diǎn)擊的多個(gè)事件都會(huì)解綁
//對(duì)象.click()這種方式添加的事件也可以使用unbind解綁
//括號(hào)中沒有任何參數(shù),此時(shí)該元素的所有的事件全部解綁
//同時(shí)解綁多個(gè)事件---每個(gè)事件的名字中間用空格即可
//第一個(gè)按鈕為div綁定事件
$("#btn").click(function () {
// //div的點(diǎn)擊事件
$("#dv").bind("click", function () {
console.log("div被點(diǎn)了");
}).bind("click", function () {
console.log("div點(diǎn)第二個(gè)點(diǎn)擊");
});
//鼠標(biāo)進(jìn)入
$("#dv").bind("mouseenter", function () {
$(this).css("backgroundColor", "blue");
});
//鼠標(biāo)離開
$("#dv").bind("mouseleave", function () {
$(this).css("backgroundColor", "#00ffb8");
});
// $("#dv").click(function () {
// console.log("哈哈");
// });
});
//第二個(gè)按鈕為div解綁事件
$("#btn2").click(function () {
//解綁的是點(diǎn)擊事件,所有的點(diǎn)擊事件全部移除
//$("#dv").unbind("click");
//括號(hào)中沒有任何參數(shù),此時(shí)該元素的所有的事件全部解綁
//$("#dv").unbind();
//同時(shí)解綁多個(gè)事件
//$("#dv").unbind("mouseenter mouseleave");
});
});
</script>
</head>
<body>
<input type="button" value="綁定事件" id="btn"/>
<input type="button" value="解綁事件" id="btn2"/>
<div id="dv"></div>
</body>
</html>
undelegate解綁
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>title</title>
<style>
div {
width: 300px;
height: 200px;
background-color: green;
}
p {
width: 100px;
height: 30px;
background-color: red;
cursor: pointer;
}
</style>
<script src="jquery-1.12.1.js"></script>
<script>
$(function () {
//用什么方式綁定事件,最好用對(duì)應(yīng)的方式解綁事件
//bind括號(hào)中寫什么事件的名字就會(huì)把這個(gè)事件解綁,會(huì)把這個(gè)元素的這個(gè)點(diǎn)擊的多個(gè)事件都會(huì)解綁
//對(duì)象.click()這種方式添加的事件也可以使用unbind解綁
//括號(hào)中沒有任何參數(shù),此時(shí)該元素的所有的事件全部解綁
//同時(shí)解綁多個(gè)事件---每個(gè)事件的名字中間用空格即可
//delegate綁定事件對(duì)應(yīng)的方式的解綁方式
//點(diǎn)擊第一個(gè)按鈕,div有自己的點(diǎn)擊事件,有鼠標(biāo)進(jìn)入和鼠標(biāo)離開事件
//同時(shí)為p綁定點(diǎn)擊事件
$("#btn").click(function () {
//為div綁定事件
$("#dv").click(function () {
console.log("div被點(diǎn)了");
}).mouseenter(function () {
console.log("鼠標(biāo)進(jìn)來了");
}).mouseleave(function () {
console.log("鼠標(biāo)離開了");
});
//在div中創(chuàng)建一個(gè)p,同時(shí)綁定點(diǎn)擊事件
$("<p>這是一個(gè)p</p>").appendTo($("#dv"));
//為p綁定事件
$("#dv").delegate("p", "click", function () {
console.log("啊~p被點(diǎn)了");
});
$("#dv").delegate("p", "mouseenter", function () {
console.log("p的鼠標(biāo)進(jìn)入");
});
});
//第二個(gè)按鈕解綁事件
$("#btn2").click(function () {
//p的點(diǎn)擊事件沒有了,移除了p的所有的事件
//$("#dv").undelegate();
//移除的是p的點(diǎn)擊事件
$("#dv").undelegate("p", "click");
//可以移除多個(gè)事件,但是每個(gè)事件之間用空格隔開
$("#dv").undelegate("p", "click mouseenter");
});
});
</script>
</head>
<body>
<input type="button" value="綁定事件" id="btn"/>
<input type="button" value="解綁事件" id="btn2"/>
<div id="dv">
</div>
</body>
</html>
off解綁
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>title</title>
<style>
div {
width: 300px;
height: 200px;
background-color: green;
}
p {
width: 100px;
height: 30px;
background-color: red;
cursor: pointer;
}
</style>
<script src="jquery-1.12.1.js"></script>
<script>
$(function () {
//用什么方式綁定事件,最好用對(duì)應(yīng)的方式解綁事件
//bind括號(hào)中寫什么事件的名字就會(huì)把這個(gè)事件解綁,會(huì)把這個(gè)元素的這個(gè)點(diǎn)擊的多個(gè)事件都會(huì)解綁
//對(duì)象.click()這種方式添加的事件也可以使用unbind解綁
//括號(hào)中沒有任何參數(shù),此時(shí)該元素的所有的事件全部解綁
//同時(shí)解綁多個(gè)事件---每個(gè)事件的名字中間用空格即可
//delegate綁定事件對(duì)應(yīng)的方式的解綁方式
//點(diǎn)擊第一個(gè)按鈕,div有自己的點(diǎn)擊事件,有鼠標(biāo)進(jìn)入和鼠標(biāo)離開事件
//同時(shí)為p綁定點(diǎn)擊事件
$("#btn").click(function () {
//為div綁定事件
$("#dv").click(function () {//點(diǎn)擊事件
console.log("div被點(diǎn)了");
}).mouseenter(function () {//鼠標(biāo)進(jìn)入
console.log("鼠標(biāo)進(jìn)來了");
}).mouseleave(function () {//鼠標(biāo)離開
console.log("鼠標(biāo)離開了");
});
//在div中創(chuàng)建一個(gè)p,同時(shí)綁定點(diǎn)擊事件
$("<p>這是一個(gè)p</p>").appendTo($("#dv"));
//為p綁定事件
$("#dv").on("click", "p", function () {
console.log("啊~,p被點(diǎn)了");
});
$("#dv").on("mouseenter", "p", function () {
console.log("啊~,進(jìn)入到p里面來了,哦");
});
$("#dv").on("click", "span", function () {
console.log("哦,span被點(diǎn)了");
});
});
//第二個(gè)按鈕解綁事件
$("#btn2").click(function () {
//解綁事件
//父級(jí)元素和子級(jí)元素的所有的事件全部解綁
//$("#dv").off();
//把父級(jí)元素和子級(jí)元素的點(diǎn)擊事件解綁
//$("#dv").off("click");
//父級(jí)元素和子級(jí)的元素的多個(gè)事件,中間用空格
//$("#dv").off("click mouseenter");
//解綁p標(biāo)簽的點(diǎn)擊事件
//$("#dv").off("click","p");
//p的兩個(gè)事件都沒了
//$("#dv").off("click mouseenter","p");
//p的所有的事件全部解綁
//$("#dv").off("","p");
//干掉div中所有的子元素的點(diǎn)擊事件
//$("#dv").off("click","**");
});
});
//頁面加載
$(function () {
//為按鈕綁定點(diǎn)擊事件
$("#btn1").on("click", function () {
console.log("哈哈,我又變帥了");
});
});
</script>
</head>
<body>
<input type="button" value="哈哈,我是按鈕" id="btn1"/>
<input type="button" value="綁定事件" id="btn"/>
<input type="button" value="解綁事件" id="btn2"/>
<div id="dv">
<span>這是span</span>
</div>
</body>
</html>