jQuery off() 方法
实例
删除所有 <p> 元素的单击事件:
<!DOCTYPE html>
<html>
<head>
<script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("p").on("click", function(){
$(this).css("background-color", "pink");
});
$("button").click(function(){
$("p").off("click");
});
});
</script>
</head>
<body>
<p>单击此段落可更改其背景色。</p>
<p>单击下面的按钮,然后单击此段落(click 事件将被删除)。</p>
<button>删除 click 事件处理程序</button>
</body>
</html>
定义与用法
off()
方法最常用于删除与 on() 方法连接的事件处理程序。
从 jQuery 1.7 版开始,off()
方法是 unbind()
、die()
和 undelegate()
方法的新替代方法。这种方法为 API 带来了很多一致性,我们建议您使用这种方法,因为它简化了 jQuery 代码库。
注意:要删除特定的事件处理程序,选择器字符串必须与附加事件处理程序时传递给 on()
方法的字符串相匹配。
提示: 要附加一个只运行一次的事件,然后将其自身删除,请使用 one() 方法。
语法
$(selector).off(event,selector,function(eventObj),map)
参数 | 描述 |
---|---|
event | 必填。指定要从所选元素中删除的一个或多个事件或名称空间。 多个事件值由一个空格分隔。必须是有效的事件 |
selector | 可选。一个选择器,它应该与附加事件处理程序时最初传递给 on() 方法的选择器相匹配 |
function(eventObj) | 可选。 指定事件发生时要运行的函数 |
map | 指定事件映射 ({event:function, event:function, …}) 包含要附加到元素的一个或多个事件,以及事件发生时要运行的函数 |