Make sure custom events named "submit" can be bound to non DOM elements in IE too...
authorAnton M <haskell_noob-github@yahoo.de>
Sun, 21 Nov 2010 03:31:04 +0000 (04:31 +0100)
committerAnton M <haskell_noob-github@yahoo.de>
Sun, 21 Nov 2010 03:31:04 +0000 (04:31 +0100)
src/event.js
test/unit/event.js

index 3cfc817..75ac0ba 100644 (file)
@@ -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;
index 54431dd..a647e5f 100644 (file)
@@ -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");