]> source.dussan.org Git - jquery.git/commitdiff
Fix #10717, .trigger("load") on images can't bubble to window.
authorDave Methvin <dave.methvin@gmail.com>
Wed, 9 Nov 2011 00:32:25 +0000 (19:32 -0500)
committerDave Methvin <dave.methvin@gmail.com>
Wed, 9 Nov 2011 00:32:25 +0000 (19:32 -0500)
This means no manually triggered event named "load" can bubble, so avoid that name for delegated custom events.

src/event.js
test/unit/event.js

index 7d0c516f5fa4934feaed77830c135fd4a063e02e..ea2bfa982ac2d93d0606457aa57b31e19e71597a 100644 (file)
@@ -566,6 +566,11 @@ jQuery.event = {
                        setup: jQuery.bindReady
                },
 
+               load: {
+                       // Prevent triggered image.load events from bubbling to window.load
+                       noBubble: true
+               },
+
                focus: {
                        delegateType: "focusin",
                        noBubble: true
index 93049003a4788b506ac282ef7d5bdc3ac9ea1625..3af8a3fdebec8ca85176440ebe4102b5f8114bab 100644 (file)
@@ -1155,6 +1155,25 @@ test(".trigger() bubbling on disconnected elements (#10489)", function() {
        jQuery( window ).off( "click" );
 });
 
+test(".trigger() doesn't bubble load event (#10717)", function() {
+       expect(1);
+
+       jQuery( window ).on( "load", function(){
+               ok( false, "load fired on window" );
+       });
+
+       // It's not an image, but as long as it fires load...
+       jQuery( '<img src="index.html" />' )
+               .appendTo( "body" )
+               .on( "load", function() {
+                       ok( true, "load fired on img" );
+               })
+               .trigger( "load" )
+               .remove();
+
+       jQuery( window ).off( "load" );
+});
+
 test("jQuery.Event( type, props )", function() {
 
        expect(5);