]> source.dussan.org Git - jquery.git/commitdiff
Event: Fix chaining .on() with null handlers
authorDevin Wilson <dwilson6.github@gmail.com>
Thu, 14 Jan 2016 04:06:43 +0000 (21:06 -0700)
committerTimmy Willison <timmywillisn@gmail.com>
Fri, 15 Jan 2016 18:48:53 +0000 (13:48 -0500)
Fixes gh-2812
Close gh-2825

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

index e9d1053dc8658dd6e3e0fb6f9a8f087242160b7b..6d60b4c115ce6345e1984c7d07aba1960e356323 100644 (file)
@@ -71,7 +71,7 @@ function on( elem, types, selector, data, fn, one ) {
        if ( fn === false ) {
                fn = returnFalse;
        } else if ( !fn ) {
-               return this;
+               return elem;
        }
 
        if ( one === 1 ) {
index 6cccb8d1af7e524f1fd03ec5e1fe3f689e83361d..04ca615eb0778abc999ed164754c065d94d1c869 100644 (file)
@@ -6,7 +6,7 @@ QUnit.module( "event", {
 } );
 
 QUnit.test( "null or undefined handler", function( assert ) {
-       assert.expect( 2 );
+       assert.expect( 4 );
 
        // Supports Fixes bug #7229
        try {
@@ -18,6 +18,13 @@ QUnit.test( "null or undefined handler", function( assert ) {
                jQuery( "#firstp" ).on( "click", undefined );
                assert.ok( true, "Passing an undefined handler will not throw an exception" );
        } catch ( e ) {}
+
+       var expectedElem = jQuery( "#firstp" );
+       var actualElem = expectedElem.on( "click", null );
+       assert.equal(actualElem, expectedElem, "Passing a null handler should return the original element");
+
+       actualElem = expectedElem.on( "click", undefined );
+       assert.equal(actualElem, expectedElem, "Passing a null handler should return the original element");
 } );
 
 QUnit.test( "on() with non-null,defined data", function( assert ) {