From 89b771daefcd0cc6a31b7285b06cbc4e5ecede57 Mon Sep 17 00:00:00 2001 From: Anton M Date: Sun, 21 Nov 2010 04:31:04 +0100 Subject: [PATCH] Make sure custom events named "submit" can be bound to non DOM elements in IE too. Fixes 6398. --- src/event.js | 2 +- test/unit/event.js | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/event.js b/src/event.js index 3cfc817..75ac0ba 100644 --- a/src/event.js +++ b/src/event.js @@ -716,7 +716,7 @@ if ( !jQuery.support.submitBubbles ) { jQuery.event.special.submit = { setup: function( data, namespaces ) { - if ( this.nodeName.toLowerCase() !== "form" ) { + if ( this.nodeName && this.nodeName.toLowerCase() !== "form" ) { jQuery.event.add(this, "click.specialSubmit", function( e ) { var elem = e.target, type = elem.type; diff --git a/test/unit/event.js b/test/unit/event.js index 54431dd..a647e5f 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -493,7 +493,7 @@ test("bind(name, false), unbind(name, false)", function() { }); test("bind()/trigger()/unbind() on plain object", function() { - expect( 7 ); + expect( 8 ); var obj = {}; @@ -503,8 +503,13 @@ test("bind()/trigger()/unbind() on plain object", function() { // Make sure it doesn't complain when no events are found jQuery(obj).unbind("test"); - jQuery(obj).bind("test", function(){ - ok( true, "Custom event run." ); + jQuery(obj).bind({ + test: function() { + ok( true, "Custom event run." ); + }, + submit: function() { + ok( true, "Custom submit event run." ); + } }); var events = jQuery(obj).data("__events__"); @@ -516,8 +521,10 @@ test("bind()/trigger()/unbind() on plain object", function() { // Should trigger 1 jQuery(obj).trigger("test"); + jQuery(obj).trigger("submit"); jQuery(obj).unbind("test"); + jQuery(obj).unbind("submit"); // Should trigger 0 jQuery(obj).trigger("test"); -- 1.7.10.4