From 89b771daefcd0cc6a31b7285b06cbc4e5ecede57 Mon Sep 17 00:00:00 2001
From: Anton M <haskell_noob-github@yahoo.de>
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