From c17f589ec99e8309e813a4081eed47f39a0c6120 Mon Sep 17 00:00:00 2001 From: Rick Waldron Date: Mon, 16 May 2011 10:38:36 -0400 Subject: [PATCH] Landing pull request 377. Check custom data != null(undefined), allows zero; Fixes #9285. More Details: - https://github.com/jquery/jquery/pull/377 - http://bugs.jquery.com/ticket/9285 --- src/event.js | 2 +- test/unit/event.js | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/event.js b/src/event.js index 2bed0904..d2d57d67 100644 --- a/src/event.js +++ b/src/event.js @@ -345,7 +345,7 @@ jQuery.event = { event.target = elem; // Clone any incoming data and prepend the event, creating the handler arg list - data = data ? jQuery.makeArray( data ) : []; + data = data != null ? jQuery.makeArray( data ) : []; data.unshift( event ); var cur = elem, diff --git a/test/unit/event.js b/test/unit/event.js index 13877e01..f71c7b29 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -14,6 +14,26 @@ test("null or undefined handler", function() { } catch (e) {} }); +test("bind(),live(),delegate() with non-null,defined data", function() { + + expect(3); + + var handler = function( event, data ) { + equal( data, 0, "non-null, defined data (zero) is correctly passed" ); + }; + + jQuery("#foo").bind("foo", handler); + jQuery("#foo").live("foo", handler); + jQuery("div").delegate("#foo", "foo", handler); + + jQuery("#foo").trigger("foo", 0); + + jQuery("#foo").unbind("foo", handler); + jQuery("#foo").die("foo", handler); + jQuery("div").undelegate("#foo", "foo"); + +}); + test("bind(), with data", function() { expect(4); var handler = function(event) {