X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Ftraversing.js;h=85976a3c05baaaa40c4f0db24ccaa4b39b707eeb;hb=93be758de94b2d4a76fca217465c9e09b613cedd;hp=583a303d62200f31552f80eb2109687ed844e782;hpb=bbffc99f7c60d42d4286786dfd6a43aa31d62ae2;p=jquery.git diff --git a/src/traversing.js b/src/traversing.js index 583a303..85976a3 100644 --- a/src/traversing.js +++ b/src/traversing.js @@ -52,25 +52,27 @@ 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, context || this.context ) : 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; }); }, - add: function( selector ) { + add: function( selector, context ) { var set = typeof selector === "string" ? - jQuery( selector ) : + jQuery( selector, context || this.context ) : jQuery.makeArray( selector ), all = jQuery.merge( this.get(), set ); @@ -185,4 +187,4 @@ jQuery.extend({ return r; } -}); \ No newline at end of file +});