.undelegate()


.undelegate()Возвращает: jQueryversion deprecated: 3.0

Описание: Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements.

  • Добавлен в версии: 1.4.2.undelegate()

    • This signature does not accept any arguments.
  • Добавлен в версии: 1.4.2.undelegate( selector, eventType )

    • selector
      Тип: String
      A selector which will be used to filter the event results.
    • eventType
      Тип: String
      A string containing a JavaScript event type, such as "click" or "keydown"
  • Добавлен в версии: 1.4.2.undelegate( selector, eventType, handler )

    • selector
      Тип: String
      A selector which will be used to filter the event results.
    • eventType
      Тип: String
      A string containing a JavaScript event type, such as "click" or "keydown"
    • handler
      Тип: Function( Event eventObject )
      A function to execute at the time the event is triggered.
  • Добавлен в версии: 1.4.3.undelegate( selector, events )

    • selector
      Тип: String
      A selector which will be used to filter the event results.
    • events
      Тип: PlainObject
      An object of one or more event types and previously bound functions to unbind from them.
  • Добавлен в версии: 1.6.undelegate( namespace )

    • namespace
      Тип: String
      A string containing a namespace to unbind all events from.

As of jQuery 3.0, .undelegate() has been deprecated. It was superseded by the .off() method since jQuery 1.7, so its use was already discouraged.

The .undelegate() method is a way of removing event handlers that have been bound using .delegate().

Примеры:

Can bind and unbind events to the colored button.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>undelegate demo</title>
<style>
button {
margin: 5px;
}
button#theone {
color: red;
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.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>

Демонстрация:

To unbind all delegated events from all paragraphs, write:

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

To unbind all delegated click events from all paragraphs, write:

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

To undelegate just one previously bound handler, pass the function in as the third argument:

1
2
3
4
5
6
7
8
9
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 );

To unbind all delegated events by their namespace:

1
2
3
4
5
6
7
8
9
10
11
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" );