The .undelegate()
method is a way of removing event handlers that have been bound using .delegate()
. As of jQuery 1.7, the .on()
and .off()
methods are preferred for attaching and removing event handlers.
A selector which will be used to filter the event results.
A string containing a JavaScript event type, such as "click" or "keydown"
A selector which will be used to filter the event results.
A string containing a JavaScript event type, such as "click" or "keydown"
A function to execute at the time the event is triggered.
A selector which will be used to filter the event results.
An object of one or more event types and previously bound functions to unbind from them.
A string containing a namespace to unbind all events from.
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 > </ 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" ); |
Please login to continue.