X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fcore.js;h=d6ef236f48a8622d659a53fb2fd034ef84946aa6;hb=c36596ea58a69f7772b61829f8d0609a6fb1d9a0;hp=7fa20d4958b22a7ea37b0aa205611128ed157bed;hpb=18dad474891b94c2f51083cb9df8860a84d630b0;p=jquery.git diff --git a/src/core.js b/src/core.js index 7fa20d4..d6ef236 100644 --- a/src/core.js +++ b/src/core.js @@ -1,4 +1,4 @@ -(function() { +var jQuery = (function() { // Define a local copy of jQuery var jQuery = function( selector, context ) { @@ -109,7 +109,7 @@ jQuery.fn = jQuery.prototype = { } } else { - ret = buildFragment( [ match[1] ], [ doc ] ); + ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes; } @@ -119,7 +119,9 @@ jQuery.fn = jQuery.prototype = { } else { elem = document.getElementById( match[2] ); - if ( elem ) { + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { // Handle the case where IE and Opera return items // by name instead of ID if ( elem.id !== match[2] ) { @@ -438,18 +440,24 @@ jQuery.extend({ // Since version 1.3, DOM methods and functions like alert // aren't supported. They return false on IE (#2968). isFunction: function( obj ) { - return toString.call(obj) === "[object Function]"; + return jQuery.type(obj) === "function"; }, - isArray: function( obj ) { - return toString.call(obj) === "[object Array]"; + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + type: function( obj ) { + return obj == null ? + String( obj ) : + toString.call(obj).slice(8, -1).toLowerCase(); }, isPlainObject: function( obj ) { // Must be an Object. // Because of IE, we also have to check the presence of the constructor property. // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || toString.call(obj) !== "[object Object]" || obj.nodeType || obj.setInterval ) { + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || obj.setInterval ) { return false; } @@ -595,9 +603,9 @@ jQuery.extend({ // The extra typeof function check is to prevent crashes // in Safari 2 (See: #3039) // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 - var type = toString.call(array); + var type = jQuery.type(array); - if ( array.length == null || type === "[object String]" || type === "[object Function]" || type === "[object RegExp]" || (typeof type !== "function" && array.setInterval) ) { + if ( array.length == null || type === "string" || type === "function" || type === "regexp" || "setInterval" in array ) { push.call( ret, array ); } else { jQuery.merge( ret, array ); @@ -818,6 +826,6 @@ function doScrollCheck() { } // Expose jQuery to the global object -window.jQuery = window.$ = jQuery; +return window.jQuery = window.$ = jQuery; })();