Fixed a bug with $("body") in dynamic documents, refactored $(...), stopped the test...
authorJohn Resig <jeresig@gmail.com>
Mon, 8 Jan 2007 00:12:41 +0000 (00:12 +0000)
committerJohn Resig <jeresig@gmail.com>
Mon, 8 Jan 2007 00:12:41 +0000 (00:12 +0000)
src/ajax/ajaxTest.js
src/jquery/coreTest.js
src/jquery/jquery.js
src/selector/selector.js

index b215d95..7785a97 100644 (file)
@@ -1,5 +1,7 @@
 module("ajax");
 
+if ( location.protocol != "file:" ) {
+
 test("serialize()", function() {
        expect(1);
        var data = $(':input').not('button').serialize();
@@ -376,3 +378,5 @@ test("evalScripts() with no script elements", function() {
     }
     ok ( true, 'after evalScripts()');
 });
+
+}
index 78d4a27..4b29c8f 100644 (file)
@@ -107,19 +107,21 @@ test("attr(String, Object)", function() {
        ok( document.getElementById('text1').readOnly == false, 'Set readonly attribute' );\r
 });\r
 \r
-test("attr(String, Object)x", function() {\r
-       expect(2);\r
-       stop();\r
-       $.get('data/dashboard.xml', function(xml) { \r
-         var titles = [];\r
-         $('tab', xml).each(function() {\r
-           titles.push($(this).attr('title'));\r
-         });\r
-         ok( titles[0] == 'Location', 'attr() in XML context: Check first title' );\r
-         ok( titles[1] == 'Users', 'attr() in XML context: Check second title' );\r
-         start();\r
+if ( location.protocol != "file:" ) {\r
+       test("attr(String, Object)x", function() {\r
+               expect(2);\r
+               stop();\r
+               $.get('data/dashboard.xml', function(xml) { \r
+               var titles = [];\r
+               $('tab', xml).each(function() {\r
+               titles.push($(this).attr('title'));\r
+               });\r
+               ok( titles[0] == 'Location', 'attr() in XML context: Check first title' );\r
+               ok( titles[1] == 'Users', 'attr() in XML context: Check second title' );\r
+               start();\r
+               });\r
        });\r
-});\r
+}\r
 \r
 test("css(String|Hash)", function() {\r
        expect(8);\r
index 78d1ab9..c6f2a9b 100644 (file)
@@ -23,39 +23,41 @@ window.undefined = window.undefined;
  * @cat Core
  */
 var jQuery = function(a,c) {
+       // If the context is global, return a new object
+       if ( window == this )
+               return new jQuery(a,c);
+
        // Make sure that a selection was provided
        a = a || document;
        
+       // HANDLE: $(function)
        // Shortcut for document ready
        // Safari reports typeof on DOM NodeLists as a function
        if ( typeof a == "function" && !a.nodeType && a[0] == undefined )
-               return jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a );
-
-       // Watch for when a jQuery object is passed as the selector
-       if ( a.jquery )
-               return jQuery( jQuery.makeArray( a ) );
-
-       // Watch for when a jQuery object is passed at the context
-       if ( c && c.jquery )
-               return jQuery( c ).find(a);
-
-       // If the context is global, return a new object
-       if ( window == this )
-               return new jQuery(a,c);
-
+               return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a );
+       
        // Handle HTML strings
        if ( typeof a  == "string" ) {
+               // HANDLE: $(html) -> $(array)
                var m = /^[^<]*(<.+>)[^>]*$/.exec(a);
-               if ( m ) a = jQuery.clean( [ m[1] ] );
+               if ( m )
+                       a = jQuery.clean( [ m[1] ] );
+               
+               // HANDLE: $(expr)
+               else
+                       return new jQuery( c ).find( a );
        }
+       
+       return this.setArray(
+               // HANDLE: $(array)
+               a.constructor == Array && a ||
 
-       // Watch for when an array is passed in
-       return this.setArray( a.constructor == Array || a.length && a != window && !a.nodeType && a[0] != undefined && a[0].nodeType ?
-               // Assume that it is an array of DOM Elements
-               jQuery.makeArray( a ) :
+               // HANDLE: $(arraylike)
+               // Watch for when an array-like object is passed as the selector
+               (a.jquery || a.length && a != window && !a.nodeType && a[0] != undefined && a[0].nodeType) && jQuery.makeArray( a ) ||
 
-               // Find the matching elements and save them for later
-               jQuery.find( a, c ) );
+               // HANDLE: $(*)
+               [ a ] );
 };
 
 // Map over the $ in case of overwrite
index a478376..d9114c2 100644 (file)
@@ -214,10 +214,6 @@ jQuery.extend({
                                                ret = r = oid && 
                                                  (!m[3] || oid.nodeName == m[3].toUpperCase()) ? [oid] : [];
 
-                                       // Use the DOM 0 shortcut for the body element
-                                       } else if ( m[1] == "" && m[2] == "body" ) {
-                                               ret = r = [ document.body ];
-
                                        } else {
                                                // Pre-compile a regular expression to handle class searches
                                                if ( m[1] == "." )