Store last closer value to jQuery.lastCloser instead of using data API.
authorrkatic <robert.katic@gmail.com>
Sat, 7 Nov 2009 16:04:08 +0000 (00:04 +0800)
committerJohn Resig <jeresig@gmail.com>
Sat, 7 Nov 2009 16:36:44 +0000 (00:36 +0800)
src/traversing.js

index 92f58ba..a37af7b 100644 (file)
@@ -52,19 +52,20 @@ jQuery.fn.extend({
        },
 
        closest: function( selector, context ) {
-               var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null,
-                       closer = 0;
+               var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null;
 
                return this.map(function(){
-                       var cur = this;
+                       var cur = this, closer = 0;
                        while ( cur && cur.ownerDocument && cur !== context ) {
                                if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) {
-                                       jQuery.data(cur, "closest", closer);
+                    jQuery.lastCloser = closer;
                                        return cur;
                                }
                                cur = cur.parentNode;
                                closer++;
                        }
+            jQuery.lastCloser = -1;
+            return null;
                });
        },