Skip to content

Commit

Permalink
Handle some edge cases with binding events to the window object (whic…
Browse files Browse the repository at this point in the history
…h is also a plain object - causing some confusion). Fixes #7143.
  • Loading branch information
jeresig committed Oct 11, 2010
1 parent c00a6ff commit 1df5084
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/event.js
Expand Up @@ -282,7 +282,7 @@ jQuery.event = {
delete elemData.handle;

if ( typeof elemData === "function" ) {
delete elem.events;
jQuery.removeData( elem, "events" );

} else if ( jQuery.isEmptyObject( elemData ) ) {
jQuery.removeData( elem );
Expand Down Expand Up @@ -346,7 +346,7 @@ jQuery.event = {
// Trigger the event, it is assumed that "handle" is a function
var handle = elem.nodeType ?
jQuery.data( elem, "handle" ) :
elem.events && elem.events.handle;
(jQuery.data( elem, "events" ) || {}).handle;

if ( handle ) {
handle.apply( elem, data );
Expand Down
6 changes: 5 additions & 1 deletion test/unit/event.js
Expand Up @@ -1830,11 +1830,15 @@ test("Non DOM element events", function() {
});

test("window resize", function() {
expect(1);
expect(2);

jQuery(window).unbind();

jQuery(window).bind("resize", function(){
ok( true, "Resize event fired." );
}).resize().unbind("resize");

ok( !jQuery(window).data("events"), "Make sure all the events are gone." );
});

/*
Expand Down

0 comments on commit 1df5084

Please sign in to comment.