diff options
-rw-r--r-- | src/ajax/ajaxTest.js | 4 | ||||
-rw-r--r-- | src/jquery/coreTest.js | 26 | ||||
-rw-r--r-- | src/jquery/jquery.js | 44 | ||||
-rw-r--r-- | src/selector/selector.js | 4 |
4 files changed, 41 insertions, 37 deletions
diff --git a/src/ajax/ajaxTest.js b/src/ajax/ajaxTest.js index b215d95a8..7785a97a9 100644 --- a/src/ajax/ajaxTest.js +++ b/src/ajax/ajaxTest.js @@ -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()'); }); + +} diff --git a/src/jquery/coreTest.js b/src/jquery/coreTest.js index 78d4a275f..4b29c8f86 100644 --- a/src/jquery/coreTest.js +++ b/src/jquery/coreTest.js @@ -107,19 +107,21 @@ test("attr(String, Object)", function() { ok( document.getElementById('text1').readOnly == false, 'Set readonly attribute' );
});
-test("attr(String, Object)x", function() {
- expect(2);
- stop();
- $.get('data/dashboard.xml', function(xml) {
- var titles = [];
- $('tab', xml).each(function() {
- titles.push($(this).attr('title'));
- });
- ok( titles[0] == 'Location', 'attr() in XML context: Check first title' );
- ok( titles[1] == 'Users', 'attr() in XML context: Check second title' );
- start();
+if ( location.protocol != "file:" ) {
+ test("attr(String, Object)x", function() {
+ expect(2);
+ stop();
+ $.get('data/dashboard.xml', function(xml) {
+ var titles = [];
+ $('tab', xml).each(function() {
+ titles.push($(this).attr('title'));
+ });
+ ok( titles[0] == 'Location', 'attr() in XML context: Check first title' );
+ ok( titles[1] == 'Users', 'attr() in XML context: Check second title' );
+ start();
+ });
});
-});
+}
test("css(String|Hash)", function() {
expect(8);
diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 78d1ab94d..c6f2a9b8e 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -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 diff --git a/src/selector/selector.js b/src/selector/selector.js index a478376f8..d9114c240 100644 --- a/src/selector/selector.js +++ b/src/selector/selector.js @@ -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] == "." ) |