From ba7195e3f90b3a3130ac0b15880ba2f27106f568 Mon Sep 17 00:00:00 2001 From: jeresig Date: Fri, 26 Feb 2010 20:01:19 -0500 Subject: [PATCH] Make it so that you can pass in event data to .click(), et. al. Fixes #6187. --- src/event.js | 6 ++++-- test/unit/event.js | 11 +++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/event.js b/src/event.js index bfe2dd1..779c069 100644 --- a/src/event.js +++ b/src/event.js @@ -1071,8 +1071,10 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl "change select submit keydown keypress keyup error").split(" "), function( i, name ) { // Handle event binding - jQuery.fn[ name ] = function( fn ) { - return fn ? this.bind( name, fn ) : this.trigger( name ); + jQuery.fn[ name ] = function( data, fn ) { + return data || fn ? + this.bind( name, fn ? data : null, fn || data ) : + this.trigger( name ); }; if ( jQuery.attrFn ) { diff --git a/test/unit/event.js b/test/unit/event.js index a220ebf..6404900 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -11,6 +11,17 @@ test("bind(), with data", function() { ok( !jQuery.data(jQuery("#firstp")[0], "events"), "Event handler unbound when using data." ); }); +test("click(), with data", function() { + expect(3); + var handler = function(event) { + ok( event.data, "bind() with data, check passed data exists" ); + equals( event.data.foo, "bar", "bind() with data, Check value of passed data" ); + }; + jQuery("#firstp").click({foo: "bar"}, handler).click().unbind("click", handler); + + ok( !jQuery.data(jQuery("#firstp")[0], "events"), "Event handler unbound when using data." ); +}); + test("bind(), with data, trigger with data", function() { expect(4); var handler = function(event, data) { -- 1.7.10.4