Opened 14 years ago
Closed 14 years ago
#5312 closed bug (invalid)
Unbind doesn't work if bound using an annoymous function in IE
Reported by: | chrisprice | Owned by: | brandon |
---|---|---|---|
Priority: | major | Milestone: | 1.4 |
Component: | event | Version: | 1.3.2 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
I'm posting this in case any one else comes across a similar problem, as it appears to be a bug in IE I don't think this is fixable in jQuery.
I would expect the following to run handler1 the first time $thing is clicked and handler2 the second time, handler1 the third time, etc...
$(function() { var $thing = $("body"); $thing.click(function handler1() { alert(1 + handler1 + handler2); $thing.unbind("click", handler1).click(function handler2() { alert(2 + handler1 + handler2); $thing.unbind("click", handler2).click(handler1); }); }); });
I believe this behaviour is due to the following two (non-jQuery) test cases -
var f = function g() { alert(f === g); alert(f == g); }; f();
alert 1 | alert 2 | |
IE | false | false |
FF | true | true |
Chrome | true | true |
function a(fn) { alert((fn === fn) + (fn() === fn()) + (fn === fn())); } a(function b() { return b; });
alert | |
IE | 2 |
FF | 3 |
Chrome | 3 |
Attachments (1)
Change History (3)
Changed 14 years ago by
Attachment: | IE bug.html added |
---|
comment:2 Changed 14 years ago by
Resolution: | → invalid |
---|---|
Status: | new → closed |
Actually, since this isn't a jQuery bug I'll close it. If we had a bug for every strange thing IE does...
Note: See
TracTickets for help on using
tickets.
The non-jquery test cases