Moved a bunch of methods out of the jQuery-specific Sizzle code into more-appropriate...
authorJohn Resig <jeresig@gmail.com>
Mon, 26 Oct 2009 22:07:57 +0000 (18:07 -0400)
committerJohn Resig <jeresig@gmail.com>
Mon, 26 Oct 2009 22:07:57 +0000 (18:07 -0400)
src/core.js
src/css.js
src/fx.js
src/manipulation.js
src/selector.js
src/traversing.js

index ed1f7d5..f605e1d 100644 (file)
@@ -222,7 +222,7 @@ jQuery.fn = jQuery.prototype = {
        },
 
        is: function( selector ) {
-               return !!selector && jQuery.multiFilter( selector, this ).length > 0;
+               return !!selector && jQuery.filter( selector, this ).length > 0;
        },
 
        // For internal use only.
index f47bc8e..6abcc95 100644 (file)
@@ -197,3 +197,19 @@ jQuery.extend({
                }
        }
 });
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+       jQuery.expr.filters.hidden = function(elem){
+               var width = elem.offsetWidth, height = elem.offsetHeight,
+                        force = /^tr$/i.test( elem.nodeName ); // ticket #4512
+               return ( width === 0 && height === 0 && !force ) ?
+                       true :
+                               ( width !== 0 && height !== 0 && !force ) ?
+                                       false :
+                                               !!( jQuery.curCSS(elem, "display") === "none" );
+       };
+
+       jQuery.expr.filters.visible = function(elem){
+               return !jQuery.expr.filters.hidden(elem);
+       };
+}
\ No newline at end of file
index a73ce32..24d2841 100644 (file)
--- a/src/fx.js
+++ b/src/fx.js
@@ -420,3 +420,11 @@ jQuery.extend( jQuery.fx, {
                }
        }
 });
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+       jQuery.expr.filters.animated = function(elem){
+               return jQuery.grep(jQuery.timers, function(fn){
+                       return elem === fn.elem;
+               }).length;
+       };
+}
\ No newline at end of file
index 789bf54..eea377b 100644 (file)
@@ -333,7 +333,7 @@ jQuery.each({
 jQuery.each({
        // keepData is for internal use only--do not document
        remove: function( selector, keepData ) {
-               if ( !selector || jQuery.multiFilter( selector, [ this ] ).length ) {
+               if ( !selector || jQuery.filter( selector, [ this ] ).length ) {
                        if ( !keepData && this.nodeType === 1 ) {
                                cleanData( this.getElementsByTagName("*") );
                                cleanData( [ this ] );
index de8830a..6291d86 100644 (file)
@@ -998,67 +998,6 @@ var posProcess = function(selector, context){
 jQuery.find = Sizzle;
 jQuery.expr = Sizzle.selectors;
 jQuery.expr[":"] = jQuery.expr.filters;
-
-Sizzle.selectors.filters.hidden = function(elem){
-       var width = elem.offsetWidth, height = elem.offsetHeight,
-                force = /^tr$/i.test( elem.nodeName ); // ticket #4512
-       return ( width === 0 && height === 0 && !force ) ?
-               true :
-                       ( width !== 0 && height !== 0 && !force ) ?
-                               false :
-                                       !!( jQuery.curCSS(elem, "display") === "none" );
-};
-
-Sizzle.selectors.filters.visible = function(elem){
-       return !Sizzle.selectors.filters.hidden(elem);
-};
-
-Sizzle.selectors.filters.animated = function(elem){
-       return jQuery.grep(jQuery.timers, function(fn){
-               return elem === fn.elem;
-       }).length;
-};
-
-jQuery.filter = jQuery.multiFilter = function( expr, elems, not ) {
-       if ( not ) {
-               expr = ":not(" + expr + ")";
-       }
-
-       return Sizzle.matches(expr, elems);
-};
-
-jQuery.dir = function( elem, dir ){
-       var matched = [], cur = elem[dir];
-       while ( cur && cur != document ) {
-               if ( cur.nodeType == 1 )
-                       matched.push( cur );
-               cur = cur[dir];
-       }
-       return matched;
-};
-
-jQuery.nth = function(cur, result, dir, elem){
-       result = result || 1;
-       var num = 0;
-
-       for ( ; cur; cur = cur[dir] )
-               if ( cur.nodeType == 1 && ++num == result )
-                       break;
-
-       return cur;
-};
-
-jQuery.sibling = function(n, elem){
-       var r = [];
-
-       for ( ; n; n = n.nextSibling ) {
-               if ( n.nodeType == 1 && n != elem )
-                       r.push( n );
-       }
-
-       return r;
-};
-
 jQuery.unique = Sizzle.uniqueSort;
 
 return;
index 8f1e5eb..583a303 100644 (file)
@@ -10,8 +10,8 @@ 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.multiFilter(qualifier, filtered, !keep);
-               else qualifier = jQuery.multiFilter( 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) {
@@ -128,7 +128,7 @@ jQuery.each({
                var ret = jQuery.map( this, fn );
 
                if ( selector && typeof selector === "string" ) {
-                       ret = jQuery.multiFilter( selector, ret );
+                       ret = jQuery.filter( selector, ret );
                }
 
                ret = this.length > 1 ? jQuery.unique( ret ) : ret;
@@ -140,3 +140,49 @@ jQuery.each({
                return this.pushStack( ret, name, selector );
        };
 });
+
+jQuery.extend({
+       filter: function( expr, elems, not ) {
+               if ( not ) {
+                       expr = ":not(" + expr + ")";
+               }
+
+               return jQuery.find.matches(expr, elems);
+       },
+       
+       dir: function( elem, dir ) {
+               var matched = [], cur = elem[dir];
+               while ( cur && cur.nodeType !== 9 ) {
+                       if ( cur.nodeType === 1 ) {
+                               matched.push( cur );
+                       }
+                       cur = cur[dir];
+               }
+               return matched;
+       },
+
+       nth: function( cur, result, dir, elem ) {
+               result = result || 1;
+               var num = 0;
+
+               for ( ; cur; cur = cur[dir] ) {
+                       if ( cur.nodeType === 1 && ++num === result ) {
+                               break;
+                       }
+               }
+
+               return cur;
+       },
+
+       sibling: function( n, elem ) {
+               var r = [];
+
+               for ( ; n; n = n.nextSibling ) {
+                       if ( n.nodeType === 1 && n !== elem ) {
+                               r.push( n );
+                       }
+               }
+
+               return r;
+       }
+});
\ No newline at end of file