返回介绍

.undelegate()

发布于 2017-09-11 17:17:02 字数 3740 浏览 1025 评论 0 收藏 0

所属分类:事件 > 绑定事件处理器

.undelegate()返回: jQuery

描述: 删除当前选择器匹配的所有元素的事件处理程序,根据一组特定根元素的集合。

  • 添加的版本: 1.4.2.undelegate()

    • This method does not accept any arguments.
  • 添加的版本: 1.4.2.undelegate( selector, eventType )

    • selector 类型: String 选择器字符串,用于过滤器触发事件的元素。
    • eventType 类型: String 一个包含一个或多个用空格隔开的JavaScript事件类型的字符串,比如"click"或"keydown"。
  • 添加的版本: 1.4.2.undelegate( selector, eventType, handler(eventObject) )

    • selector 类型: String 选择器字符串,用于过滤器触发事件的元素。
    • eventType 类型: String 一个包含一个或多个用空格隔开的JavaScript事件类型的字符串,比如"click"或"keydown"。
    • handler(eventObject) 类型: Function() 每当事件触发时执行的函数。
  • 添加的版本: 1.4.3.undelegate( selector, events )

    • selector 类型: String 选择器字符串,用于过滤器触发事件的元素。
    • events 类型: PlainObject 一个或多个事件类型和以前绑定的函数组成的一个对象,用来以解除他们(处理程序)。
  • 添加的版本: 1.6.undelegate( namespace )

    • namespace 类型: String 一个字符串,其中包含一个命名空间,以解除所有事件。

.undelegate是用来移除使用.delegate()的方式已经绑定的事件处理程序。从 jQuery 1.7 开始.on().off()方法是最好的元素上附加和移除事件处理程序的方法。

例子:

Example: 可以绑定和取消绑定事件的彩色按钮。

<!DOCTYPE html>
<html>
<head>
  <style>
button { margin:5px; }
button#theone { color:red; background:yellow; }
</style>
  <script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
  <button id="theone">Does nothing...</button>
<button id="bind">Bind Click</button>
<button id="unbind">Unbind Click</button>
<div style="display:none;">Click!</div>
<script>
function aClick() {
  $("div").show().fadeOut("slow");
}
$("#bind").click(function () {
  $("body").delegate("#theone", "click", aClick)
    .find("#theone").text("Can Click!");
});
$("#unbind").click(function () {
  $("body").undelegate("#theone", "click", aClick)
    .find("#theone").text("Does nothing...");
});
</script>
 
</body>
</html>

Example: 解除绑定的所有段落都从委托的事件:

$("p").undelegate()

Example: 解除绑定的所有段落的所有委托点击事件:

$("p").undelegate( "click" )

Example: 为了undelegate只是一个以前绑定的处理程序,通过在作为第三个参数的函数:

var foo = function () {
  // code to handle some kind of event
};
 
// ... now foo will be called when paragraphs are clicked ...
$("body").delegate("p", "click", foo);
 
 
// ... foo will no longer be called.
$("body").undelegate("p", "click", foo); 

Example: 为了拆散他们的命名空间的所有委托事件:

var foo = function () {
  // code to handle some kind of event
};
 
// delegate events under the ".whatever" namespace
$("form").delegate(":button", "click.whatever", foo);
 
$("form").delegate("input[type='text']", "keypress.whatever", foo);
 
// unbind all events delegated under the ".whatever" namespace
 
$("form").undelegate(".whatever");

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文