undelegate([s,[t],fn])

返回值

jQuery

概述

删除由 delegate() 方法添加的一个或多个事件处理程序。

jQuery 3.0中已弃用此方法,请用 off()代替。

参数

参数 类型 说明 示例值
selector,[type] String,String

v1.4.2
selector:需要删除事件处理程序的选择器
type:需要删除处理函数的一个或多个事件类型。 由空格分隔多个事件值。必须是有效的事件

selector,[type],fn String,String,Function

v1.4.2
selector:需要删除事件处理程序的选择器
type:需要删除处理函数的一个或多个事件类型。 由空格分隔多个事件值。必须是有效的事件
fn:要删除的具体事件处理函数

selector,events String,String

v1.4.3
selector:需要删除事件处理程序的选择器
events:一个或多个事件类型的字符串和函数的数据映射来执行他们

namespace String

v1.6
namespace:一个字符串,其中包含一个命名空间取消绑定的所有事件

示例

示例一

描述:从p元素删除由 delegate() 方法添加的所有事件处理器:

jQuery 代码

$("p").undelegate();
示例二

描述:从p元素删除由 delegate() 方法添加的所有click事件处理器:

jQuery 代码

$("p").undelegate( "click" )
示例三

描述:从form元素删除由 delegate() 方法添加的".whatever"命名空间:

jQuery 代码

var foo = function () {
  //.....
};
//用delegate() 方法给click事件增加".whatever"命名空间
$("form").delegate(":button", "click.whatever", foo);
$("form").delegate("input[type='text']", "keypress.whatever", foo); 
// 用undelegate()方法删除delegate()方法增加的".whatever"命名空间
$("form").undelegate(".whatever");