Store last closer value to jQuery.lastCloser instead of using data API.

This commit is contained in:
rkatic 2009-11-08 00:04:08 +08:00 committed by John Resig
parent 3106039aa8
commit 0f03c7489f

View File

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