fix regression in removing live events caused by r6324
authorBrandon Aaron <brandon.aaron@gmail.com>
Tue, 12 May 2009 15:43:51 +0000 (15:43 +0000)
committerBrandon Aaron <brandon.aaron@gmail.com>
Tue, 12 May 2009 15:43:51 +0000 (15:43 +0000)
src/event.js

index e9164e5..cac56bd 100644 (file)
@@ -402,8 +402,20 @@ jQuery.event = {
                                jQuery.event.add( this, data.live, liveHandler );
                        },
 
-                       teardown: function( namespaces ) {
-                               jQuery.event.remove( this, namespaces[0], liveHandler );
+                       remove: function( namespaces ) {
+                               if ( namespaces.length ) {
+                                       var remove = 0, name = new RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)");
+
+                                       jQuery.each( (jQuery.data(this, "events").live || {}), function() {
+                                               if ( name.test(this.type) ) {
+                                                       remove++;
+                                               }
+                                       });
+
+                                       if ( remove < 1 ) {
+                                               jQuery.event.remove( this, namespaces[0], liveHandler );
+                                       }
+                               }
                        }
                }
        }