小码哥的IT人生

首页 > JS > jQuery

jQuery 事件 - undelegate() 方法 概述

jQuery 2022-06-01 12:12:44小码哥的IT人生shichen

jQuery 事件 - undelegate() 方法

实例

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

$("body").undelegate();

完整实例:

<html>
<head>
<script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("body").delegate("p","click",function(){
    $(this).slideToggle();
  });
  $("button").click(function(){
    $("body").undelegate();
  });
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
<p>点击任何段落可以令其消失。包括本段落。</p>
<button>从所有元素删除由 delegate() 方法添加的事件处理器</button>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

定义和用法

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

语法

$(selector).undelegate(selector,event,function)

完整实例:

<html>
<head>
<script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("p").click(function(){
    $(this).slideToggle();
  });
  $("button").click(function(){
    $("p").unbind();
  });
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
<p>点击任何段落可以令其消失。包括本段落。</p>
<button>删除 p 元素的事件处理器</button>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

参数 描述
selector 可选。规定需要删除事件处理程序的选择器。
event 可选。规定需要删除处理函数的一个或多个事件类型。
function 可选。规定要删除的具体事件处理函数。

亲自试一试 - 实例

完整实例【删除事件处理程序,由 delegate() 添加,来自具体选择器】:

<html>
<head>
<script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
function changeSize()
  {
  $(this).animate({fontSize:"+=3px"});
  }
function changeSpacing()
  {
  $(this).animate({letterSpacing:"+=2px"});
  }
$(document).ready(function(){
  $("body").delegate("p","click",changeSize);
  $("body").delegate("p","click",changeSpacing);
  $("button").click(function(){
    $("body").undelegate("p");
  });
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
<p>点击任何段落增加字体大小和字符间距。包括本段落。</p>
<button>从 p 元素删除由 delegate() 方法添加的所有事件处理器</button>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

如何使用 undelegate() 方法从指定元素删除所有事件处理程序。

完整实例【删除指定事件类型的事件处理程序,由 delegate() 添加,来自指定元素】:

<html>
<head>
<script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
function changeSize()
  {
  $(this).animate({fontSize:"+=3px"});
  }
function changeSpacing()
  {
  $(this).animate({letterSpacing:"+=2px"});
  }
$(document).ready(function(){
  $("body").delegate("p","click",changeSize);
  $("body").delegate("p","click",changeSpacing);
  $("button").click(function(){
    $("body").undelegate("p","click");
  });
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
<p>点击任何段落增加字体大小和字符间距。包括本段落。</p>
<button>从 p 元素删除由 delegate() 方法添加的所有 "click" 事件处理器</button>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

如何使用 undelegate() 方法从指定元素删除具体事件类型的所有事件处理程序。

完整实例【删除由 delegate() 添加的具体函数】:

<html>
<head>
<script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
function changeSize()
  {
  $(this).animate({fontSize:"+=3px"});
  }
function changeSpacing()
  {
  $(this).animate({letterSpacing:"+=2px"});
  }
$(document).ready(function(){
  $("body").delegate("p","click",changeSize);
  $("body").delegate("p","click",changeSpacing);
  $("button").click(function(){
    $("body").undelegate("p","click",changeSize);
  });
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
<p>点击任何段落增加字体大小和字符间距。包括本段落。</p>
<button>从 p 元素删除由 delegate() 方法添加的事件处理器 changeSize()</button>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

如何使用 undelegate() 方法为事件处理程序删除来自特定事件类型的特定函数。

版权所有 © 小码哥的IT人生
Copyright © phpcodeweb All Rights Reserved
ICP备案号:苏ICP备17019232号-2  

苏公网安备 32030202000762号

© 2021-2024