From: Devin Wilson Date: Thu, 14 Jan 2016 04:06:43 +0000 (-0700) Subject: Event: Fix chaining .on() with null handlers X-Git-Tag: 2.2.1~13 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=c4d9eac930b86c192b0f96210d88bb7d91e697e1;p=jquery.git Event: Fix chaining .on() with null handlers Fixes gh-2812 Close gh-2825 --- diff --git a/src/event.js b/src/event.js index e9d1053dc..6d60b4c11 100644 --- a/src/event.js +++ b/src/event.js @@ -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 ) { diff --git a/test/unit/event.js b/test/unit/event.js index 6cccb8d1a..04ca615eb 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -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 ) {