Skip to content
Permalink
Browse files

Fixed a bug with $("body") in dynamic documents, refactored $(...), s…

…topped the test suite from trying to run Ajax tests locally.
  • Loading branch information
jeresig committed Jan 8, 2007
1 parent 5acecf6 commit 12e63353391f1a556a73fe92bcd8e5f0ac277726
Showing with 41 additions and 37 deletions.
  1. +4 −0 src/ajax/ajaxTest.js
  2. +14 −12 src/jquery/coreTest.js
  3. +23 −21 src/jquery/jquery.js
  4. +0 −4 src/selector/selector.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()');
});

}
@@ -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);
@@ -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
@@ -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] == "." )

0 comments on commit 12e6335

Please sign in to comment.
You can’t perform that action at this time.