加载中...

undelegate()3.0-


概述    .undelegate()

返回值:jQuery

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

  • V : 1.4.2.undelegate()

    • This method does not accept any arguments.
  • V : 1.4.2.undelegate( selector, eventType )

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

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

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

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

在jQuery 3.0中,.undelegate()已被标记为弃用。从jQuery 1.7开始,它已经被.off()方法取代。所以我们不建议使用该方法。

.undelegate是用来移除使用.delegate()的方式已经绑定的事件处理程序。

示例

实例

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

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. button { margin:5px; }
  6. button#theone { color:red; background:yellow; }
  7. </style>
  8. <script src="http://code.jquery.com/jquery-latest.js"></script>
  9. </head>
  10. <body>
  11. <button id="theone">Does nothing...</button>
  12. <button id="bind">Bind Click</button>
  13. <button id="unbind">Unbind Click</button>
  14. <div style="display:none;">Click!</div>
  15. <script>
  16. function aClick() {
  17. $("div").show().fadeOut("slow");
  18. }
  19. $("#bind").click(function () {
  20. $("body").delegate("#theone", "click", aClick)
  21. .find("#theone").text("Can Click!");
  22. });
  23. $("#unbind").click(function () {
  24. $("body").undelegate("#theone", "click", aClick)
  25. .find("#theone").text("Does nothing...");
  26. });
  27. </script>
  28. </body>
  29. </html>

运行一下

实例

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

  1. $("p").undelegate()

实例

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

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

实例

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

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

实例

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

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


还没有评论.