jQuery 事件 - undelegate() 方法

实例

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

  1. $("body").undelegate();

定义和用法

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

语法

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

实例

  • 删除事件处理程序,由 delegate() 添加,来自具体选择器

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

  1. <html>
  2. <head>
  3. <script type="text/javascript" src="/jquery/jquery.js"></script>
  4. <script type="text/javascript">
  5. function changeSize()
  6. {
  7. $(this).animate({fontSize:"+=3px"});
  8. }
  9. function changeSpacing()
  10. {
  11. $(this).animate({letterSpacing:"+=2px"});
  12. }
  13. $(document).ready(function(){
  14. $("body").delegate("p","click",changeSize);
  15. $("body").delegate("p","click",changeSpacing);
  16. $("button").click(function(){
  17. $("body").undelegate("p");
  18. });
  19. });
  20. </script>
  21. </head>
  22. <body>
  23. <p>这是一个段落。</p>
  24. <p>这是另一个段落。</p>
  25. <p>点击任何段落增加字体大小和字符间距。包括本段落。</p>
  26. <button>从 p 元素删除由 delegate() 方法添加的所有事件处理器</button>
  27. </body>
  28. </html>
  • 删除指定事件类型的事件处理程序,由 delegate() 添加,来自指定元素

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

  1. <html>
  2. <head>
  3. <script type="text/javascript" src="/jquery/jquery.js"></script>
  4. <script type="text/javascript">
  5. function changeSize()
  6. {
  7. $(this).animate({fontSize:"+=3px"});
  8. }
  9. function changeSpacing()
  10. {
  11. $(this).animate({letterSpacing:"+=2px"});
  12. }
  13. $(document).ready(function(){
  14. $("body").delegate("p","click",changeSize);
  15. $("body").delegate("p","click",changeSpacing);
  16. $("button").click(function(){
  17. $("body").undelegate("p","click");
  18. });
  19. });
  20. </script>
  21. </head>
  22. <body>
  23. <p>这是一个段落。</p>
  24. <p>这是另一个段落。</p>
  25. <p>点击任何段落增加字体大小和字符间距。包括本段落。</p>
  26. <button>从 p 元素删除由 delegate() 方法添加的所有 "click" 事件处理器</button>
  27. </body>
  28. </html>
  • 删除由 delegate() 添加的具体函数

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

  1. <html>
  2. <head>
  3. <script type="text/javascript" src="/jquery/jquery.js"></script>
  4. <script type="text/javascript">
  5. function changeSize()
  6. {
  7. $(this).animate({fontSize:"+=3px"});
  8. }
  9. function changeSpacing()
  10. {
  11. $(this).animate({letterSpacing:"+=2px"});
  12. }
  13. $(document).ready(function(){
  14. $("body").delegate("p","click",changeSize);
  15. $("body").delegate("p","click",changeSpacing);
  16. $("button").click(function(){
  17. $("body").undelegate("p","click",changeSize);
  18. });
  19. });
  20. </script>
  21. </head>
  22. <body>
  23. <p>这是一个段落。</p>
  24. <p>这是另一个段落。</p>
  25. <p>点击任何段落增加字体大小和字符间距。包括本段落。</p>
  26. <button>从 p 元素删除由 delegate() 方法添加的事件处理器 changeSize()</button>
  27. </body>
  28. </html>