X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Ftraversing.js;h=a467e7c9eaa616831c07ae19b238e64ad782247f;hb=ddb86f8d5bd1bd21b2beeeea55baf505b47dfed5;hp=92f58ba9cd51c02c12cfedfb3162fa0a565d5265;hpb=b0fe380cf89564305646bbd55d1fd7bd210fd591;p=jquery.git diff --git a/src/traversing.js b/src/traversing.js index 92f58ba..a467e7c 100644 --- a/src/traversing.js +++ b/src/traversing.js @@ -10,8 +10,11 @@ var winnow = function( elements, qualifier, keep ) { } else if( typeof qualifier === "string" ) { var filtered = jQuery.grep(elements, function(elem) { return elem.nodeType === 1 }); - if(isSimple.test( qualifier )) return jQuery.filter(qualifier, filtered, !keep); - else qualifier = jQuery.filter( qualifier, elements ); + if(isSimple.test( qualifier )) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, elements ); + } } return jQuery.grep(elements, function(elem, i) { @@ -52,19 +55,21 @@ 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; }); },