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, …}) 包含要附加到元素的一个或多个事件,以及事件发生时要运行的函数 |