Side navigation
#9911 closed bug (invalid)
Opened July 26, 2011 01:01PM UTC
Closed July 26, 2011 01:43PM UTC
Last modified April 12, 2013 08:21PM UTC
Undelegate will not work when selector is class name.
Reported by: | rosenkonstantinov@gmail.com | Owned by: | |
---|---|---|---|
Priority: | low | Milestone: | None |
Component: | event | Version: | 1.6.2 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
It seems that as of jQuery 1.6.x undelegate will not work if selector is a class name. (this is working with 1.5.2)
Tested on Chorme 12.0.742.122 and Firefox 5.0.
Sample repro http://jsfiddle.net/njrNw/7/. Clicking on the button will not remove the previous delegate causing multiple executions of the click handler.
Attachments (0)
Change History (3)
Changed July 26, 2011 01:43PM UTC by comment:1
component: | unfiled → event |
---|---|
priority: | undecided → low |
resolution: | → invalid |
status: | new → closed |
Changed July 26, 2011 02:31PM UTC by comment:2
OP, you are confusing HTML classes with jQuery event namespaces. This example with namespaces works fine.
Changed April 12, 2013 08:21PM UTC by comment:3
<p> The new on() replacement for delegate also will not undelegate. </p> <div id="container"> <button type="button" class="b">Click me twice</button> </div> function attach() { var $con = $("#container").on("click", ".b", function() { console.log("click"); attach(); } ); } attach();
If a selector is passed, so must an event type be passed.
http://api.jquery.com/undelegate
http://jsfiddle.net/timmywil/njrNw/8/
http://jsfiddle.net/timmywil/njrNw/9/