jQuery undelegate()方法
jQuery undelegate()方法是一个内置的方法,它是用来从选定的元素中删除指定的事件处理器。
语法:
$(selector).undelegate(selector, event, function)
参数:该方法接受上面提到的和下面描述的三个参数。
- selector。这是一个可选参数,用于指定事件将被移除的选择器。
- event。这是一个可选参数,用于指定选择器上的事件类型名称。
- function。这是一个可选的参数,用于指定要删除的处理程序函数的名称。
下面的例子说明了jQuery中的undelegate()方法。
例子1:这个例子不包含任何参数。
<!DOCTYPE html>
<html>
<head>
<title>The undelegate Method</title>
<script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
<!-- jQuery code to show the working of this method -->
<script>
(document).ready(function () {
("body").delegate("p", "click", function () {
(this).css("font-size", "25px");
});
("button").click(function () {
$("body").undelegate();
});
});
</script>
<style>
div {
width: 300px;
height: 100px;
background-color: lightgreen;
padding: 20px;
font-weight: bold;
font-size: 20px;
border: 2px solid green;
}
button {
margin-top: 10px;
}
</style>
</head>
<body>
<div>
<!-- click on this p element -->
<p>Welcome to GeeksforGeeks!.</p>
</div>
<!-- click on this button to remove the
event handler -->
<button>Remove...!</button>
</body>
</html>
输出:
注意:先点击按钮,再点击段落,就不会发生变化。
例子2:这个例子包含所有参数。
<!DOCTYPE html>
<html>
<head>
<title>The undelegate Method</title>
<script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
<!-- jQuery code to show the working of this method -->
<script>
(document).ready(function () {
("body").delegate("div", "click", function () {
(this).animate({
height: "+=100px"
});
(this).animate({
width: "+=100px"
});
});
("button").click(function () {
("body").undelegate("div", "click");
});
});
</script>
<style>
div {
width: 30px;
height: 30px;
background-color: green;
}
button {
margin-top: 10px;
}
</style>
</head>
<body>
<div></div>
<!-- click on this button -->
<button>Click here..!</button>
</body>
</html>
输出:
注意:如果点击按钮,然后再点击div元素,那么尺寸将不会发生变化。