Skip to content
Permalink
Browse files

Fix #11925, Pass eventHandle to special.teardown. Closes gh-831.

* Added unit test to confirm.
  The third assertion fails without the fix in ./src/event.js
  • Loading branch information...
Krinkle authored and dmethvin committed Jun 18, 2012
1 parent d2b0c60 commit 9bb3494ce99889e05a7333e38e4da9579ce6af8e
Showing with 16 additions and 1 deletion.
  1. +1 −1 src/event.js
  2. +15 −0 test/unit/event.js
@@ -181,7 +181,7 @@ jQuery.event = {
// Remove generic event handler if we removed something and no more handlers exist
// (avoids potential for endless recursion during removal of special event handlers)
if ( eventType.length === 0 && origCount !== eventType.length ) {
if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
jQuery.removeEvent( elem, type, elemData.handle );
}

@@ -1382,6 +1382,21 @@ test("Submit event can be stopped (#11049)", function() {
form.remove();
});

test("on(beforeunload) creates/deletes window property instead of adding/removing event listener", function() {
expect(3);

equal( window.onbeforeunload, null, "window property is null/undefined up until now" );

var handle = function () {};
jQuery(window).on( "beforeunload", handle );

equal( typeof window.onbeforeunload, "function", "window property is set to a function");

jQuery(window).off( "beforeunload", handle );

equal( window.onbeforeunload, null, "window property has been unset to null/undefined" );
})

test("jQuery.Event( type, props )", function() {

expect(5);

0 comments on commit 9bb3494

Please sign in to comment.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.